第1章 概论
1. 1 初识Linux
1. 1. 1 Linux的诞生
1. 1. 2 Linux的发展
1. 2 Linux操作系统结构
1. 2. 1 Linux的特性
1. 2. 2 Linux的系统组成
1. 2. 3 Linux与其他操作系统的区别
1. 3 1 Linux的内核源代码
1. 3. 1 如何得到源代码
1. 3. 2 源代码的目录体系
1. 3. 3 源代码的解读
1. 4 本章小结
第2章 进程管理
2. 1 Linux进程
2. 1. 1 数据结构task-struct
2. 1. 2 标识符
2. 1. 3 时间和定时器
2. 2 1 Linux进程控制
2. 2. 1 创建进程
2. 2. 2 执行进程
2. 2. 3 等待进程
2. 2. 4 结束进程
2. 3 程序执行
2. 3. 1 写时复制
2. 3. 2 ELF可执行文件
2. 4 Linux进程调度
2. 4. 1 调度原理
2. 4. 2 多处理器系统中的调度
2. 4. 3 Linux进程调度的实现
2. 4. 4 重要函数分析
2. 5 Linux进程管理实例
2. 6 本章小结
第3章 进程间通信机制
3. 1 信号
3. 1. 1 信号机制
3. 1. 2 信号处理
3, 1. 3 实例
3. 2 管道
3. 2. 1 管道的实现机制
3. 2. 2 创建管道
3. 2. 3 命名管道
3. 3 Svstem V进程间通信机制
3. 3. 1 消息队列
3. 3. 2 信号量
3. 3. 3 共享内存
3. 4 本章小结
第4章 内存管理
4. 1 Linux内存管理体系结构
4. 1. 1 Linux的地址空间
4. 1. 2 地址转换技术
4. 1. 3 Linux内存管理机制
4. 2 Linux分页机制
4. 2. 1 页目录和页表
4. 2. 2 页的分配和回收
4. 3 内存映射
4. 4 缺页处理
4. 5 交换机制
4. 5. 1 物理页的换出
4. 5. 2 页的换出和淘汰策略
4. 6 内存分配和回收
4. 6. 1 分配与回收策略
4. 6. 2 相关函数与具体操作
4. 6. 3 应用实例
4. 7 1 Linux缓存与刷新机制
4. 7. 1 Linux系统中的缓存
4. 7. 2 刷新机制
6. 2 BSD套接字接口
6. 2. 1 BSD套接字
6. 2. 2 socket通信
6. 3 INET套接字层
6. 3. 1 创建BSD套接字
6. 3. 2 绑定地址
6. 3. 3 连接
6. 3. 4 监听
6. 3. 5 接受连接请求
6. 4 IP层
6. 4. 1 套接字缓冲区
6. 4. 2 数据包的发送
6. 4. 3 数据包的接收
6. 4. 4 数据包的分段
6. 5 地址解析协议
6. 6 IP路由
6. 6. 1 路由缓存
6. 6. 2 转发信息数据库
6. 7 Linux网络管理实例
6. 8 本章小结
第7章 设备管理
7. 1 Linux设备管理概述
7. 2 PCI总线
7. 2. 1 PCI总线结构
7. 2. 2 PCI总线的地址管理
7. 2. 3 PCI桥
7. 2. 4 PCI数据结构
7. 3 设备中的内存管理
7. 3. 1 设备内存地址
7. 3. 2 对设备内存的操作
7. 3. 3 直接内存访问
7. 4 中断
7. 4. 1 可编程中断控制器
7. 4. 2 Linux中断门
7. 4. 3 硬件中断处理
7. 4. 4 软中断
7. 5 Linux设备驱动程序
7. 5. 1 设备驱动程序
7. 5. 2 字符设备驱动程序
7. 5. 3 块设备驱动程序
7. 6 硬盘
7. 6. 1 硬盘分区
7. 6. 2 硬盘驱动程序
7. 7 网络设备
7. 8 设备驱动程序的编程实例
7. 9 本章小结
第8章 内核机制与内核模块
8. 1 内核机制
8. 1. 1 Bottom Half控制
8. 1. 2 任务队列
8. 1. 3 定时器
8. 1. 4 等待队列
8. 1. 5 Buzz锁
8. 1. 6 信号量
8. 2 内核模块
8. 2. 1 模块简介
8. 2. 2 装载模块
8. 2. 3 卸载模块
8. 2. 4 编写内核模块
8. 3 用户内核操作
8. 3. 1 编译内核
8. 3. 2 系统调用
8. 4 本章小结
第9章 Linux初始化
9. 1 开机
9. 2 系统引导
9. 3 Linux系统初始化
9. 3. 1 内核的初始化
9. 3. 2 init进程
9. 4 关机
9. 5 本章小结
附录A Linux数据结构
附录B GNU通用公共许可证