Unix内核源码剖析

Unix内核源码剖析

(日) 青柳隆宏, 著

出版社:人民邮电出版社

年代:2014

定价:79.0

书籍简介:

本书结合UNIX V6已公开的相关文档,对UNIX V6的内核源码进行详细剖析,旨在让读者更深入地理解进程、中断、块I/O、文件系统、字符I/O、系统启动等操作系统的基本原理。本书适合操作系统的初中级学习者阅读,特别适合通过大学课程和其他入门书对操作系统有所了解,但是对具体细节缺乏深入理解的读者,以及那些对操作系统的具体实现有兴趣的读者。

作者介绍:

青柳隆宏,日本资深程序员,现在硅谷从事计算机处理芯片的设计工作。曾设计了超级计算机“京”的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

后记

索引

内容摘要:

为什么要阅读内核源代码
  ● 对计算机系统的全貌有更深入的了解
  ● 对学到的算法和思路举一反三
  ● 加深对操作系统的理解
  ● 提升自身的技术水平
  为什么选择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操作系统-研究 的书籍。