注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络操作系统Unix内核源码剖析

Unix内核源码剖析

Unix内核源码剖析

定 价:¥79.00

作 者: (日)青柳隆宏 著,殷中翔 译
出版社: 人民邮电出版社
丛编项:
标 签: 操作系统 计算机与互联网

购买这本书可以去


ISBN: 9787115345219 出版时间: 2014-03-01 包装: 平装
开本: 16开 页数: 368 字数:  

内容简介

  为什么要阅读内核源代码● 对计算机系统的全貌有更深入的了解● 对学到的算法和思路举一反三● 加深对操作系统的理解● 提升自身的技术水平为什么选择UNIX V6?● 代码行数约为1 万行● 有充实的资料可参考● 网罗了操作系统的基本功能● 简化的设计● 便于读者对系统有完整的了解● 有模拟器可供参考《Unix内核源码剖析》是一本Unix内核源代码的阅读指南。作者结合UNIX V6已公开的相关文档,对其内核源码进行详细剖析,旨在让读者更深入地理解进程、中断、块I/O系统、文件系统、字符I/O系统、启动系统等操作系统的基本原理。《Unix内核源码剖析》适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。

作者简介

  青柳隆宏,日本资深程序员,现在硅谷从事计算机处理芯片的设计工作。曾设计了超级计算机“京”的L1缓存,该计算机在2011年排名世界Top 500超级计算机的第1位,也是人类历史上第一台计算能力跨越1亿亿次每秒的计算系统。译者简介:殷中翔,日本国立九州大学系统信息专业硕士学位。具有十余年软件开发经验,现主要从事企业Web系统服务器端的开发及维护工作。

图书目录


第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  
后记  
索引

本目录推荐