内容简介
第Ⅰ部分 什么是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小结
第Ⅱ部分 进程
第2章 进程
2.1进程的概要
什么是进程
进程的并行执行
进程的执行状态
用户模式和内核模式
交换处理
2.2 proc结构体和user结构体
proc结构体
user结构体
2.3为进程分配的内存
代码段
数据段
虚拟地址空间
变换地址
2.4小结
第3章 进程的管理Ⅰ
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小结
第Ⅲ部分 中断
第5章 中断与陷入
5.1什么是中断与陷入
什么是中断
什么是陷入
5.2优先级与向量(Vector)
中断优先级和处理器优先级
中断和陷入向量
5.3中断和陷入的处理流程
发生中断或陷入
执行call和trap
5.4时钟中断处理函数
时钟设备的规格
时钟中断处理函数的内容
clock()
5.5陷入处理函数
trap()
g row()
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小结
第Ⅳ部分 块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小结
第Ⅴ部分 文件系统
第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()
open i()
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小结
第Ⅵ部分 字符I/O系统
第12章 字符设备
12.1字符设备驱动
字符设备缓冲区
对缓冲区的操作
初始化缓冲区池
12.2 LP11设备驱动
什么是LP11
LP11设备驱动的功能
Ipopen()
Ipwrite()
Ipcanon()
Ipoutput()
Ipstart()
Ipint()
Ipclose()
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()
read()
canon()
13.6向终端输出数据
klwrite()
write()
ttyoutput()
ttstart()
ttrstrt()
klxint()
13.7小结
第Ⅶ部分 启动系统
第14章 启动系统
14.1启动的流程
start
main()
/etc/init
14.2小结
附 录 参考资料等
A.1参考文献、网站
A.2 pre K&R C
后记
索引