第一部分 文件系统 3
第1章 文件的内部表示 3
1.1 磁盘索引节点 4
1.2 目录文件 7
1.3 内存索引节点 8
1.4 超级块 10
1.5 文件系统安装表 12
1.6 系统活动文件表 13
1.7 文件系统内部结构小结 14
1.8 subr.c 14
第2章 系统缓冲区 21
2.1 缓冲区控制块 21
2.2 多种缓冲区队列 24
2.3 缓冲区的分配、释放和读写 26
2.4 关于缓冲区操作的源程序bio.c 28
第3章 文件系统的底层操作 41
3.1 路径名到索引节点的转换nami.c 41
3.2 内存索引节点的分配与释放——iget.c 48
3.3 盘索引节点和盘块的分配——alloc.c 56
第4章 有关文件操作的系统调用 65
4.1 进程打开文件表 65
4.2 与文件操作有关的系统调用 66
4.3 与文件操作有关的源程序和函数 67
4.4 主要函数的流程描述 69
4.5 sys2.c 72
4.6 sys3.c 80
4.7 utssys.c 89
4.8 fio.c 90
4.9 rdwri.c 96
第二部分 存储管理 105
第5章 存储管理的硬件基础 105
5.1 VAX—11/780存储管理机构 105
5.2 专用寄存器 107
5.3 地址空间的划分 109
5.4 page.h和mtpr.h 113
第6章 系统空间的管理 117
6.1 系统空间布局 117
6.2 系统页表的管理 120
6.3 文件machdep.c 124
第7章 进程虚空间的管理 133
7.1 进程虚空间布局 133
7.2 进程空间的管理 135
7.3 进程正文段的共享 140
7.4 text.c 142
第8章 内存和交换区管理 153
8.1 内存管理 153
8.2 交换区管理 155
8.3 内存特别文件 157
8.4 malloc.c 159
第三部分 进程管理 167
第9章 进程的结构与状态 167
9.1 概述 167
9.2 proc和user结构 167
9.3 进程状态 177
9.4 进程上下文 179
第10章 进程的创建、执行与终止 183
10.1 进程的创建 183
10.2 执行一个文件 188
10.3 进程终止和等待 191
10.4 sysl.c 192
第11章 进程调度 207
11.1 进程的睡眠与唤醒 207
11.2 进程调度和程序切换 208
11.3 进程的换进换出 212
11.4 slp.c 216
11.5 sys4.c 231
第12章 中断和异常处理 243
12.1 中断和异常处理的硬件基础 243
12.2 中断的处理 253
12.3 clock.c和callo.h 257
12.4 pwr.c和power.s 262
12.5 trap.s 265
12.6 异常的处理 275
12.7 trap.c 277
12.8 sysent.c 281
12.9 软中断 284
12.10 sig.c 285
第13章 进程通讯 295
13.1 无名管道和命名管道 295
13.2 消息缓冲机构 298
13.3 共享内存段 304
13.4 信号量机构 309
13.5 msg.c 315
13.6 shm.c 326
13.7 sem.c 338
13.8 pipe.c和pio.c 353
13.9 ipc.c 357
第四部分 输入/输出子系统 363
第14章 输入/输出子系统概述 363
14.1 系统配置 363
14.2 系统调用与驱动程序的接口 366
14.3 中断处理程序 367
第15章 块设备管理 369
15.1 多总线子系统结构 369
15.2 缓冲区队列及有关的数据结构 371
15.3 缓冲区管理和块设备读写 376
15.4 多总线适配器管理及设备的驱动 380
15.5 多总线适配器驱动程序mba.c 382
15.6 通用磁盘驱动程序gd.c 384
15.7 TU78磁带驱动程序hu.c 392
第16章 字符设备管理 403
16.1 单总线子系统结构 403
16.2 单总线适配器管理 408
16.3 单总线适配器驱动程序uba.c 411
16.4 字符设备缓冲区管理 417
16.5 clist.c 422
16.6 终端设备管理 427
16.7 tty.c 432
16.8 dz—11驱动程序dz.c 442
16.9 公用终端驱动程序tt0.c 451
16.10 VT100驱动程序vt100.c 472
16.11 打印机驱动程序1p.c 477
第17章 控制台管理 483
17.1 控制台子系统 483
17.2 控制台子系统的管理 485
17.3 控制台操作程序prf.c 489
17.4 控制台管理程序cons.c 492
第五部分 其他 503
第18章 系统初始化 503
18.1 系统初始化过程概述 503
18.2 初始汇编程序start.s 504
18.3 操作系统主程序main.c 506
第19章 依赖于硬件的汇编代码 513
19.1 概述 513
19.2 copy.s 514
19.3 userio.s 516
19.4 cswitch.s 518
19.5 misc.s 519
19.6 end.s 521
19.7 math.s 522
19.8 *.m 523
第20章 系统生成 527
20.1 系统配置文件的生成 527
20.2 系统生成 530
20.3 config.vax.c 530
20.4 conf.c 561
20.5 linesw.c 564
20.6 univec.c 565
20.7 makefile 569
第21章 补遗 609
21.1 acct.c 609
21.2 errlog.c 612
21.3 macherr.c 617
第六部分 附录 623
附录A .h文件 623
附录B 函数索引 667