| 价格 | ¥79.00 |
| 发货 | 广东东莞市 |
| 数量 | -+ |
| 库存 | 100本 |
为什么要阅读内核源代码
● 对计算机系统的全貌有更深入的了解
● 对学到的算法和思路举一反三
● 加深对操作系统的理解
● 提升自身的技术水平
为什么选择UNIX V6?
● 代码行数约为1 万行
● 有充实的资料可参考
● 网罗了操作系统的基本功能
● 简化的设计
● 便于读者对系统有完整的了解
● 有模拟器可供参考
本书是一本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
map结构体 76
获取未使用区域 77
释放区域 79
3.8 小结 81
第4章 交换处理 82
4.1 什么是交换处理 82
代码段和数据段 82
sched() 83
xswap() 87
4.2 共享代码段的处理 88
xalloc() 90
xfree() 93
xccdec() 93
4.3 小结 94
第III 部分
中断 95
第5章 中断与陷入 96
5.1 什么是中断与陷入 96
什么是中断 96
什么是陷入 97
5.2 优先级与向量(Vector) 98
中断优先级和处理器优先级 98
中断和陷入向量 100
5.3 中断和陷入的处理流程 100
发生中断或陷入 101
执行call和trap 104
5.4 时钟中断处理函数 107
时钟设备的规格 107
时钟中断处理函数的内容 108
clock() 113
5.5 陷入处理函数 117
trap() 117
grow() 122
5.6 系统调用的处理流程 123
传递参数的方法 123
sysent结构体 124
trap() 126
5.7 小结 128
第6章 信号 129
6.1 什么是信号 129
信号的发送方法 129
确认接收信号 129
信号的种类 130
ssig() 131
kill() 132
signal() 133
psignal() 133
issig() 134
psig() 134
core() 136
在系统调用处理中处理信号 136
6.2 跟踪功能 137
什么是跟踪 137
ipc结构体 138
跟踪的处理流程 138
stop() 139
ptrace() 140
procxmt() 142
wait() 143
6.3 小结 144
第IV 部分
块I/O 系统 145
第7章 块设备子系统 146
7.1 设备的基础 146
设备的种类 146
设备驱动 146
类别和设备编号 147
特殊文件 147
7.2 块设备子系统 148
缓冲区