第1章 开放源代码——实现一个现代操作系统
1.1 Linux的历史
1.2 Linux功能
1.3 Linux 2.4内核的新特性
第2章 编译内核
2.1 源代码构型结构
2.1.1 arch/目录
2.1.2 drivers/目录
2.1.3 fs/目录
2.1.4 include/目录
2.1.5 ipc/目录
2.1.6 init/目录
2.1.7 lib/目录
2.1.8 kernel/目录
2.1.9 mm/目录
2.1.10 net/目录
2.2 编译内核
2.3 GNU gcc编译器
2.4 编码约定
2.5 体系结构依赖性
第3章 Linux内核的基本功能
3.1 操作系统到底做什么
3.2 资源管理
3.3 CPU管理
3.4 内存加载等待时间
3.5 高速缓存(cache)
3.6 转向预测
3.7 软件问题
3.8 自锁(spinlocks)/互斥(mutexes)
3.9 设备处理
3.10 块设备处理
3.10.1 影响磁盘访问时间的因素——磁盘输入/输出操作的过程
3.10.2 磁盘的机械操作
3.10.3 RAID救援来了
3.11 字符设备处理
3.11.1 DMA操作
3.11.2 DMA寻址限制
3.11.3 DMA映射的类型
3.11.4 使用相容性DMA映射
3.11.5 DMA方向
3.11.6 使用流式DMA映射
3.12 中断处理
3.13 Linux时间保持功能
3.13.1 系统时钟
3.13.2 实时评价(Real-Time Profiling)
3.13.3 TOD(Time of Day)功能
3.14 系统的初始化和启动
3.14.1 启动时内核表格创建次序
3.14.2 启动时的硬件识别
3.14.3 关机
第4章 Linux进程模型
4.1 进程
4.2 创建子进程
4.3 线程
4.4 2.4线程化内核
4.5 性能限制
第5章 Linux虚拟内有管理程序
5.1 虚拟内存概念
5.2 交换
5.3 页面替换
5.4 Linux 2.4的实现
5.4.1 地址转换
5.5 Linux中的TLB
5.6 页面分配和解除分配
5.7 页面解除分配
5.8 最近最少使用(LRU)算法
5.9 交换和删除页面
5.10 换出页面
5.11 减小页面缓存器和缓冲区援存器的容量
5.12 换出共享页面
5.13 换入页面(请求调页)
5.13.1 交换文件中的页面
5.13.2 交换文件中的共享页面
5.13.3 可执行映像页面
5.14 在Intel x86上超过4GB的寻址
5.15 改进虚存
5.16 实现页着色
第6章 Linux调度程序
6.1 调度类
6.2 线程
6.3 SMP调度程序试探法
6.4 内核抢先(preemption)和用户抢先
6.5 Linux方法的意义
6.6 改进调度程序
6.7 让CPU脱机或联机
6.8 CPU亲缘关系
6.9 基于指示的调度
第7章 信号处理
7.1 信号描述和缺省行为
7.2 同步信号
7.3 信号和中断——完美的一对
第8章 kHTTPd
8.1 控制kHTTPd
第9章 Linux系统调用
9.1.1 IA32上的系统调用和事件类型
9.2 中断
9.3 异常
9.3.1 异常作为Java中对象的一个例子
9.4 向量(vector)
9.5 Linux系统调用接口
9.5.1 更复杂的系统调用
9.5.2 用户空间系统调用代码库
9.6 跟踪系统调用
9.7 如何加入自己的系统调用
9.8 Linux/IA32内核系统调用列表
第10章 文件系统
10.1 逻辑卷管理程序(LVM)
10.2 Linux内核和文件系统的关系
10.3 文件系统控制操作的内核数据结构对象
10.3.1 由内核实例化的通用数据结构对象
10.4 缓冲区、高速缓存和存储器无用单元收集
10.5 Linux对i结点的使用
10.6 性能问题和优化策略
10.7 原始I/O
10.8 进程资源限制
10.9 基于盘区的存储单元分配(通用的)
10.10 基于块的存储单元分配(通用)
10.11 事务处理或数据库安全问题
10.12 日志的优点(和不记日志相比)
10.13 日志文件系统如何工作
10.14 元数据日志
10.15 可用的日志文件系统
10.16 IBM的JFS
10.16.1 主要的JFS数据结构和算法
10.16.2 标准的管理实用程序
10.17 启动时如何设置JFS
10.17.1 块分配映射表
10.17.2 i结点分配映射表
10.17.3 AG自由i结点列表
10.17.4 IAG自由列表
10.17.5 文件集分配映射表i结点
10.18 和其他文件系统相比JFS的设计特征
10.19 JFS对B+树的进一步广泛使用
10.20 叶结点
10.21 内部结点
10.22 可变的块大小
10.23 目录组织
10.24 JFS对稀疏文件和稠密文件的支持
10.25 聚集和文件集
10.26 日志
10.27 逻辑卷管理程序概括
10.27.1 配置概念
10.27.2 例子
10.27.3 命令概述和概念
10.27.4 举一个LVM会话输出的例子
附录A 参考书目
A.1 论文和书目
附录B GNU许可证
B.1 GNU通用公共许可证
B.2 序言
附录C 逻辑卷管理程序概括
附录D 内核参数(V2.2.9)