第一章 硬件平台
1.1 基本概念
1.1.1 特权级
1.1.2 操作模式
1.1.3 系统级体系结构
1.2 描述符
1.2.1 段描述符
1.2.2 全局和局部描述符表
1.2.3 段选择符
1.2.4 段寄存器
1.2.5 任务状态段
1.2.6 中断和异常
1.2.7 门描述符
1.3 分页机制
1.3.1 与分页相关的标志
1.3.2 页目录和页表
1.3.3 页级保护
1.4 寄存器
1.4.1 通用寄存器
1.4.2 标志寄存器
1.4.3 段寄存器
1.4.4 管理寄存器
1.4.5 控制寄存器
1.4.6 指令寄存器
1.4.7 特殊模式寄存器
1.4.8 其它寄存器
1.5 系统指令
1.6 AT&T汇编语言
1.6.1 AT&T汇编格式
1.6.2 AT&T内嵌汇编
第二章 引导和初始化
2.1 开机过程
2.2 内核的组织
2.3 引导程序
2.4 实模式下的初始化
2.5 内核映像解压缩
2.6 保护模式下的初始化
2.7 内核启动
2.8 init进程
第三章 中断处理
3.1 中断
3.1.1 中断设置
3.1.2 中断处理要求
3.1.3 异常处理
3.1.4 外部中断处理
3.2 时钟
3.2.1 时钟中断
3.2.2 时钟中断上部处理
3.2.3 时钟中断底半处理
3.2.4 系统时间
3.2.5 更新进程时间片
3.2.6 定时器
3.3 系统调用
3.3.1 调用机制
3.3.2 int $0x80
3.3.3 内存拷贝
第四章 内存管理
4.1 物理内存管理器
4.1.1 数据结构
4.1.2 页分配
4.1.3 页释放
4.1.4 页回收
4.2 内核内存管理器
4.2.1 初始化
4.2.2 Cache的建立
4.2.3 为Cache增加Slab
4.2.4 对象的分配
4.2.5 对象的释放
4.2.6 回收指定Cache的空闲Slab
4.2.7 回收Cache中的空闲Slab
4.3 虚拟内存管理器
4.3.1 虚拟内存抽象模型
4.3.2 虚拟内存拷贝
4.3.3 虚拟内存重建
4.3.4 缺页处理
4.3.5 共享映射页的写出
4.3.6 交换
4.3.7 页缓存和交换缓存
4.3.8 堆
4.3.9 虚拟内存释放
4.4 内核虚拟内存管理器
第五章 进程管理
5.1 进程数据结构
5.2 进程创建
5.3 进程调度
5.4 进程执行映像的加载
5.4.1 ELF格式执行文件
5.4.2 ELF格式共享库
5.4.3 脚本文件
5.4.4 ELF文件的加载过程
5.5 进程终止
5.6 进程等待队列
5.7 进程同步
5.7.1 锁
5.7.2 信号灯
5.7.3 条件变量
5.7.4 睡眠等待
第六章 进程间通信
6.1 信号
6.1.1 信号的定义
6.1.2 数据结构
6.1.3 信号位图操作
6.1.4 注册信号处理程序
6.1.5 发送信号
6.1.6 处理信号
6.1.7 其余操作
6.1.8 信号的局限
6.2 管道
6.3 系统V IPC机制
6.3.1 消息队列
6.3.2 信号灯
6.3.3 共享内存
第七章 文件系统
7.1 虚拟文件系统
7.1.1 VFS超级块
7.1.2 VFS inode
7.1.3 目录项
7.1.4 注册文件系统
7.1.5 安装文件系统
7.1.6 获得文件的inode和目录项
7.1.7 创建或打开文件
7.1.8 文件I/O
7.1.9 卸载文件系统
7.1.10 重装文件系统
7.1.11 同步文件系统
7.2 缓存机制
7.2.1 VFS inode缓存
7.2.2 目录项缓存
7.2.3 Buffer Cache
7.3 EXT2文件系统
7.3.1 EXT2超级块
7.3.2 EXT2 inode
7.3.3 EXT2组描述符
7.3.4 EXT2目录
7.3.5 文件查找
7.3.6 数据块的分配和释放
7.3.7 EXT2文件系统的注册
7.3.8 EXT2文件系统的安装
7.3.9 EXT2文件系统的VFS inode
7.3.10 EXT2文件系统的文件操作
第八章 设备驱动
8.1 设备驱动程序概念
8.1.1 I/O空间
8.1.2 轮询和中断
8.1.3 数据传输方式
8.1.4 设备名字空间
8.1.5 设备和驱动程序分类
8.1.6 内存限制
8.1.7 设备驱动程序和内核的接口
8.2 字符设备驱动程序
8.2.1 注册
8.2.2 打开
8.2.3 设备I/O操作
8.2.4 中断
8.2.5 关闭
8.3 块设备驱动程序
8.3.1 注册
8.3.2 IDE磁盘的初始化
8.3.3 打开设备(Open)
8.3.4 设备I/O操作
8.3.5 释放设备
8.3.6 Ramdisk驱动程序
8.4 网络设备驱动程序
第九章 内核模块
9.1 内核模块的设计
9.2 模块数据结构
9.3 模块的加载
9.4 模块的卸载
9.5 模块系统调用
9.6 内核模块的问题
参考文献