深入理解LINUX内核(第三版)
出版信息
(美)博韦,西斯特 / 陈莉君;张琼声;张宏伟 / 中国电力出版社 / 2007-10-01 / 98.00元
内容简介
为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些程序将以什么顺序共享处理器时间。它如此有效地管理有限的内存,以至成百上千的进程能高效地共享系统。它熟练地统筹数据传输,这样CPU 不用为等待速度相对较慢的硬盘而消耗比正常耗时更长的时间。
《深入理解Linux内核,第三版》指导你对内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历。通过对表面特性的探究,作者给那些想知道自己机器工作原理的人提供了颇有价值的见解。书中讨论了Intel特有的重要性质。相关的代码片段被逐行剖析。然而,本书涵盖的不仅仅是代码的功能,它解释了Linux以自己的方式工作的理论基础。
本书新版涵盖2.6版本,其在内核的几乎每个子系统中都有重要的变化,尤其是在内存管理和块设备领域。本书侧重于以下主题:
●内存管理,包括文件缓存、进程交换和直接内存存取(DMA)
●虚拟文件系统层和第二、第三扩展文件系统
●进程创建和调度
●信号、中断和设备驱动程序的主要接口
●定时
●内核中的同步
●进程间通信(IPC)
●程序的执行
《深入理解Linux内核》将使你了解Linux的所有内部工作,它不仅仅是一个理论上的练习。你将学习到哪些情况下Linux性能最佳,并且你将看到,在大量的不同环境里进行进程调度、文件存取和内存管理时它如何满足提供良好的系统响应的需要。这本书将帮助你充分利用Linux系统。
作者简介
博韦,计算机科学专业博士,意大利罗马大学Tor vergata分校全职教授。
切萨蒂 数学和计算机科学博士,罗马大学Tor vergata分校工程学院计算机科学系助理研究员。
目录
前言
第一章 绪论
Linux与其他类Unix内核的比较
硬件的依赖性
Linux版本
操作系统基本概念
Unix文件系统概述
Unix内核概述
第二章 内存寻址
内存地址
硬件中的分段
Linux中的分段
硬件中的分页
Linux中的分页
第三章 进程
进程、轻量级进程和线程
进程描述符
进程切换
创建进程
撤消进程
第四章 中断和异常
中断信号的作用
中断和异常
中断和异常处理程序的嵌套执行
初始化中断描述符表
异常处理
中断处理
软中断及tasklet
工作队列
从中断和异常返回
第五章 内核同步
内核如何为不同的请求提供服务
同步原语
对内核数据结构的同步访问
避免竞争条件的实例
第六章 定时测量
时钟和定时器电路
Linux计时体系结构
更新时间和日期
更新系统统计数
软定时器和延迟函数
与定时测量相关的系统调用
第七章 进程调度
调度策略
调度算法
调度程序所使用的数据结构
调度程序所使用的函数
多处理器系统中运行队列的平衡
与调度相关的系统调用
第八章 内存管理
页框管理
内存区管理
非连续内存区管理
第九章 进程地址空间
进程的地址空间
内存描述符
线性区
缺页异常处理程序
创建和删除进程的地址空间
堆的管理
第十章 系统调用
POSIX API和系统调用
系统调用处理程序及服务例程
进入和退出系统调用
参数传递
内核封装例程
第十一章 信号
信号的作用
产生信号
传递信号
与信号处理相关的系统调用
第十二章 虚拟文件系统
虚拟文件系统(VFS)的作用
VFS的数据结构
文件系统类型
文件系统处理
路径名查找
VFS系统调用的实现
文件加锁
第十三章 I/O体系结构和设备驱动程序
I/O体系结构
设备驱动程序模型
设备文件
设备驱动程序
字符设备驱动程序
第十四章 块设备驱动程序
块设备的处理
通用块层
I/O调度程序
块设备驱动程序
打开块设备文件
第十五章 页高速缓存
页高速缓存
把块存放在页高速缓存中
把脏页写入磁盘
sync()、fsync()和fdatasync()系统调用
第十六章 访问文件
读写文件
内存映射
直接I/O传送
异步I/O
第十七章 回收页框
页框回收算法
反向映射
PFRA实现
交换
第十八章 Ext2和Ext3文件系统
Ext2的一般特征
Ext2磁盘数据结构
Ext2的内存数据结构
创建Ext2文件系统
Ext2的方法
管理Ext2磁盘空间
Ext3文件系统
第十九章 进程通信
管道
FIFO
System V IPC
POSIX消息队列
第二十章 程序的执行
可执行文件
可执行格式
执行域
exec函数
附录一 系统启动
附录二 模块
参考文献
源代码索引