前言 1
第一章 历史和目的 5
1.1 UNIX系统的历史 5
1.2 BSD和其它系统 8
1.3 4BSD的设计目的 10
1.4 发行工程 12
第二章 4.3BSD设计概貌 18
2.1 UNIX功能和核心 18
2.2 核心的组成 19
2.3 核心服务 20
2.4 进程管理 21
2.5 存储管理 23
2.6 I/O系统 25
2.7 文件系统 29
2.8 设备 30
2.10 进程间通信 31
2.9 终端 31
2.11 网络通信 32
2.12 网络实现 32
2.13 系统运行 33
习题 33
第三章 核心服务 35
3.1 核心的组织 35
3.2 系统调用 38
3.3 自陷和中断 39
3.4 时钟中断 40
3.5 计时 42
3.6 进程管理 44
3.7 用户标识符和组标识符 46
3.8 资源控制 47
3.9 系统操作 49
习题 50
4.1 引言 52
第四章 进程管理 52
4.2 进程状态 54
4.3 环境切换(context switching) 59
4.4 进程调度 65
4.5 进程的创建 69
4.6 进程的终止 70
4.7 信号 71
4.8 进程调试 78
习题 79
第五章 存储管理 82
5.1 术语 82
5.2 4.3BSD存储管理的改进 85
5.3 VAX存储管理硬件 88
5.4 内存管理、内存映象表Core Map 92
5.5 对换空间管理 95
5.6 进程资源 95
5.7 创建新进程 101
5.8 执行一个文件 104
5.9 改变进程长度 105
5.10 进程终止 106
5.11 请页 107
5.12 页替换 110
5.13 对换 114
习题 118
第六章 I/O系统概述 122
6.1 用户到设备的I/O映射 122
6.2 描述符管理和服务 124
习题 133
第七章 文件系统 135
7.1 结构和概貌 135
7.2 内部文件系统概貌 138
7.3 内部结构和进一步设计 140
7.4 文件系统的数据结构 145
7.5 缓冲区管理 149
7.6 缓冲区管理的实现 151
7.7 分配机制 155
7.8 文件系统名字翻译 158
习题 159
第八章 设备驱动程序 161
8.1 概论 161
8.2 设备驱动程序 162
8.3 块设备 164
8.4 字符设备 165
8.5 自动配置 168
8.6 UNIBUS设备 170
8.7 MASSBUS设备 183
习题 186
9.1 终端处理方式 188
第九章 终端处理 188
9.2 线路规程 189
9.3 用户接口 190
9.4 tty结构 191
9.5 进程组和终端控制 192
9.6 C-lists 193
9.7 RS-232和调制解调器控制 194
9.8 终端操作 194
9.9 其它线路规程 201
9.10 概要 202
习题 202
第十章 进程间通信 204
10.1 进程的通信模式 204
10.2 实现的结构与概述 208
10.3 内存管理 209
10.4 数据结构 211
10.5 建立连接 215
10.6 数据传送 217
10.7 关闭套接口 222
习题 223
第十一章 网络通信 225
11.1 内部结构 225
11.2 套接口与协议的接口 229
11.3 协议-协议接口 233
11.4 协议-网络-接口之间的接口 234
11.5 路由选择 237
11.6 缓冲和拥挤控制 239
11.7 原始套接口 240
11.8 其它一些网络子系统问题 242
习题 246
第十二章 网络协议 249
12.1 DARPA互连网络协议 249
12.2 用户数据报协议(UDP) 254
12.3 互联网络协议(IP) 256
12.4 传送控制协议(TCP) 260
12.5 TCP算法 264
12.6 TCP输入处理 268
12.7 TCP输出处理 271
12.8 互联网络控制报文协议(ICMP) 277
12.9 ARPANET的主机接口 278
12.10 Xerox网络系统通信域(XNS) 279
12.11 总结 281
习题 283
第十三章 系统启动 287
13.1 概述 287
13.2 引导 287
13.3 核心初始化 289
13.4 用户级初始化 296
13.5 系统启动问题 297
习题 300