本书是一本Unix内核源代码的阅读指南。作者结合UNIX V6已公开的相关文档,对其内核源码进行详细剖析,旨在让读者更深入地理解进程、中断、块I/O系统、文件系统、字符I/O系统、启动系统等操作系统的基本原理。
本书适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。
目录
第I部分
什么是UNIX V6 1
第1章 UNIX V6的全貌 2
1.1 什么是UNIX V6 2
1.2 UNIX的历史2
1.3 UNIX V6内核 4
1.4 构成UNIX V6运行环境的硬件 4
PDP-11 5
1.5 代码 9
1.6 手册 9
1.7 小结 10
第II部分
进程 11
第2章 进程 12
2.1 进程的概要 12
什么是进程 12
进程的并行执行 12
进程的执行状态 14
用户模式和内核模式 14
交换处理15
2.2 proc结构体和user结构体 15
proc结构体 16
user结构体 17
2.3 为进程分配的内存 21
代码段 21
数据段 21
虚拟地址空间 22
变换地址 24
2.4 小结 26
第3章 进程的管理I 27
3.1 进程的生命周期 27
3.2 创建进程 28
进程的复制 28
父进程和子进程 29
系统调用fork 29
newproc() 32
panic() 36
3.3 切换执行进程 37
中断执行进程 37
进程的执行状态 37
选择执行进程的算法 38
上下文切换 39
系统调用wait 39
sleep() 39
swtch() 41
swtch() 的返回位置 44
setpri() 51
wakeup() 51
setrun() 52
3.4 执行程序 53
程序执行文件的格式 53
系统调用exec 54
estabur() 62
sureg() 65
expand() 66
3.5 进程的终止 68
系统调用exit 69
系统调用wait 71
3.6 数据区域的扩展 73
系统调用break 73
3.7 管理内存和交换空间 76