出版社:人民邮电出版社
年代:2014
定价:79.0
本书结合UNIX V6已公开的相关文档,对UNIX V6的内核源码进行详细剖析,旨在让读者更深入地理解进程、中断、块I/O、文件系统、字符I/O、系统启动等操作系统的基本原理。本书适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。
第I部分
什么是UNIX V6
第1章 UNIX V6的全貌
1.1 什么是UNIX V6
1.2 UNIX的历史
1.3 UNIX V6内核
1.4 构成UNIX V6运行环境的硬件
PDP-11
1.5 代码
1.6 手册
1.7 小结
第II部分
进程
第2章 进程
2.1 进程的概要
什么是进程
进程的并行执行
进程的执行状态
用户模式和内核模式
交换处理
2.2 proc结构体和user结构体
proc结构体
user结构体
2.3 为进程分配的内存
代码段
数据段
虚拟地址空间
变换地址
2.4 小结
第3章 进程的管理I
3.1 进程的生命周期
3.2 创建进程
进程的复制
父进程和子进程
系统调用fork
newproc()
panic()
3.3 切换执行进程
中断执行进程
进程的执行状态
选择执行进程的算法
上下文切换
系统调用wait
sleep()
swtch()
swtch() 的返回位置
setpri()
wakeup()
setrun()
3.4 执行程序
程序执行文件的格式
系统调用exec
estabur()
sureg()
expand()
3.5 进程的终止
系统调用exit
系统调用wait
3.6 数据区域的扩展
系统调用break
3.7 管理内存和交换空间
map结构体
获取未使用区域
释放区域
3.8 小结
第4章 交换处理
4.1 什么是交换处理
代码段和数据段
sched()
xswap()
4.2 共享代码段的处理
xalloc()
xfree()
xccdec()
4.3 小结
第III 部分
中断
第5章 中断与陷入
5.1 什么是中断与陷入
什么是中断
什么是陷入
5.2 优先级与向量(Vector)
中断优先级和处理器优先级
中断和陷入向量
5.3 中断和陷入的处理流程
发生中断或陷入
执行call和trap
5.4 时钟中断处理函数
时钟设备的规格
时钟中断处理函数的内容
clock()
5.5 陷入处理函数
trap()
grow()
5.6 系统调用的处理流程
传递参数的方法
sysent结构体
trap()
5.7 小结
第6章 信号
6.1 什么是信号
信号的发送方法
确认接收信号
信号的种类
ssig()
kill()
signal()
psignal()
issig()
psig()
core()
在系统调用处理中处理信号
6.2 跟踪功能
什么是跟踪
ipc结构体
跟踪的处理流程
stop()
ptrace()
procxmt()
wait()
6.3 小结
第IV 部分
块I/O 系统
第7章 块设备子系统
7.1 设备的基础
设备的种类
设备驱动
类别和设备编号
特殊文件
7.2 块设备子系统
缓冲区
b-list和av-list
RAW 输入输出
7.3 缓冲区的初始化
binit()
clrbuf()
7.4 缓冲区的获取和释放
getblk()
notavail()
brelse()
7.5 读取
读取的种类
bread()
iowait()
iodone()
geterror()
breada()
incore()
7.6 写入
写入的种类
bwrite()
bawrite()
bdwrite()
bflush()
7.7 RAW输入输出
physio()
swap()
7.8 小结
第8章 块设备驱动
8.1 什么是块设备驱动
块设备驱动表
设备处理队列
处理流程
8.2 RK-11磁盘驱动
RK11-D
特殊文件
设定bdevsw[]
中断处理函数
RK11-D 的寄存器
rkstrategy()
rkstart()
rkaddr()
devstart()
rkintr()
RAW 输入输出
8.3 小结
第V 部分
文件系统
第9章 文件系统
9.1 什么是文件系统
inode
树状结构的命名空间
挂载
访问权限
根磁盘
9.2 块设备的区域
用于启动的区域
超级块
inode区域
存储区域
9.3 挂载
mount结构体
系统调用mount
getmdev()
系统调用umount
9.4 inode的获取和释放
inode[]
iget()
iput()
iupdat()
9.5 inode与存储区域的对应关系
bmap()
itrunc()
9.6 分配块设备中的块
ialloc()
ifree()
alloc()
free()
getfs()
badblock()
9.7 将路径变为inode
目录的内容
namei()
access()
9.8 初始化与同步
iinit()
update()
9.9 小结
第10章 文件处理
10.1 用户程序对文件的处理
10.2 3 个结构体
标准输入输出
10.3 文件的生成和打开处理
系统调用creat
maknode()
wdir()
系统调用open
open1()
falloc()
ufalloc()
openi()
10.4 文件的读取和写入
系统调用read、write
rdwr()
readi()
writei()
iomove()
getf()
10.5 指定文件的读写位置
系统调用seek
10.6 关闭文件
系统调用close
closef()
closei()
10.7 目录的生成
系统调用mknod
10.8 文件的链接
系统调用link
suser()
10.9 删除文件
系统调用unlink
10.10 小结
第11章 管道
11.1 什么是管道
使用管道的优点
11.2 开始管道通信
系统调用pipe
11.3 收发数据
writep()
readp()
plock()
prele()
11.4 结束管道通信
closef()
11.5 建立管道通信的流程
建立父子进程间的通信
系统调用dup
11.6 小结
第VI 部分
字符I/O 系统
第12章 字符设备
12.1 字符设备驱动
字符设备缓冲区
对缓冲区的操作
初始化缓冲区池
12.2 LP11设备驱动
什么是LP11
LP11设备驱动的功能
lpopen()
lpwrite()
lpcanon()
lpoutput()
lpstart()
lpint()
lpclose()
12.3 小结
第13章 电传终端
13.1 什么是电传终端
电传终端的接口
特殊文件
tty 结构体
maptab[]
partab[]
KL11/DL11
KL11/DL11设备驱动的规格
KL11/DL11设备驱动函数
13.2 终端的开启和关闭
klopen()
klclose()
wflushtty()
flushtty()
13.3 终端的设定
gtty()
stty()
sgtty()
klsgtty()
ttystty()
13.4 从终端输入文字
klrint()
ttyinput()
13.5 读取输入的数据
klread()
ttread()
canon()
13.6 向终端输出数据
klwrite()
ttwrite()
ttyoutput()
ttstart()
ttrstrt()
klxint()
13.7 小结
第VII 部分
启动系统
第14章 启动系统
14.1 启动的流程
start
main()
/etc/init
14.2 小结
附 录 参考资料等
A.1 参考文献、网站
A.2 pre K&R C
后记
索引
为什么要阅读内核源代码
● 对计算机系统的全貌有更深入的了解
● 对学到的算法和思路举一反三
● 加深对操作系统的理解
● 提升自身的技术水平
为什么选择UNIX V6?
● 代码行数约为1 万行
● 有充实的资料可参考
● 网罗了操作系统的基本功能
● 简化的设计
● 便于读者对系统有完整的了解
● 有模拟器可供参考
《Unix内核源码剖析》是一本Unix内核源代码的阅读指南。作者结合UNIX V6已公开的相关文档,对其内核源码进行详细剖析,旨在让读者更深入地理解进程、中断、块I/O系统、文件系统、字符I/O系统、启动系统等操作系统的基本原理。
《Unix内核源码剖析》适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。
精读1万行代码,深入理解操作系统原理!
超级计算机“京”的L1缓存设计者青柳隆宏经典著作!
彻底读懂Unix源代码!
书籍详细信息 | |||
书名 | Unix内核源码剖析站内查询相似图书 | ||
丛书名 | 图灵程序设计丛书 | ||
9787115345219 如需购买下载《Unix内核源码剖析》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN | |||
出版地 | 北京 | 出版单位 | 人民邮电出版社 |
版次 | 1版 | 印次 | 1 |
定价(元) | 79.0 | 语种 | 简体中文 |
尺寸 | 24 × 19 | 装帧 | 平装 |
页数 | 184 | 印数 | 4000 |
Unix内核源码剖析是人民邮电出版社于2014.2出版的中图分类号为 TP316.81 的主题关于 UNIX操作系统-研究 的书籍。
(美) 瓦哈利亚 (Vahalia,U.) , 著
刘玉坤, 岳勇, 郭立炜, 编著
(美) 罗宾斯 (Robbins,K.A.) , (美) 罗宾斯 (Robbins,S.) , 著
周明德, 编著
(印) 达斯 (Das,S.) , 著
(加) 斯托里默 (Storimer,J.) , 著
(美) 洛弗 (Love,P.) , (美) 默显罗 (Merlino,J.) , 著
邢国庆, 庞俊华, 陈智建, 编著
(美) 萨瓦 (Sarwar,S.M.) 等, 著