第1章 了解Linux内核 1
1.1 Linux内核 1
1.2 查看Linux内核状况 9
1.3编程序检查系统状况 13
1.4 Linux编程环境 17
第2章 shell 23
2.1 shell 23
2.2实现一个简单的shell程序 31
2.3 shell编程 44
第3章 内核时钟 57
3.1关于时钟和定时器 57
3.2 Linux系统时钟 62
3.3 Linux系统定时器 73
3.4时钟命令介绍 81
3.5定时器的应用 84
第4章 内核模块 95
4.1 概述 95
4.2模块实现机制 98
4.3 实例 120
第5章 系统调用 133
5.1一个简单的例子 133
5.2系统调用基础知识 134
5.3相关数据结构、源代码分析及流程 139
5.4详细讲解一个系统调用的实现 155
5.5简单系统调用的添加 158
5.6较高级主题:添加一个更复杂的系统调用 161
第6章 共享内存 169
6.1进程间通信和共享内存 169
6.2共享内存的API 171
6.3实现共享内存的源代码 180
6.4利用共享内存进行进程间通信 189
第7章 虚拟存储 205
7.1虚拟内存管理 205
7.2 Linux虚拟内存管理 211
7.3实例 233
第8章 进程的同步 241
8.1同步机制 241
8.2 Linux中几种同步机制的实现 253
8.3设计我们自己的同步机制 294
第9章 进程调度 301
9.1进程调度简介 301
9.2进程调度的策略与算法 301
9.3进程调度的实现 308
9.4改进进程调度算法的实现 319
10.1 Linux下驱动程序的相关概念 337
第10章 设备驱动 337
10.2传统的设备管理方式 347
10.3块设备的请求队列 357
10.4设备文件系统devfs 364
10.5驱动程序的框架及实例分析 372
10.6设计自己的驱动程序 384
第11章 文件系统 399
11.1文件和目录 399
11.2文件系统的框架 400
11.3 VFS文件系统 401
11.4 ext2文件系统 430
11.5 open、close和read、write操作 437
11.6 buffer cache 447
11.7实验:添加一个文件系统 456
11.8 附录:优秀的日志文件系统——ext3 467