共18章,572页
从这里开始, 我们进入内核编程的世界. 第 2 章介绍了模块化, 解释了内部的
秘密以及展示了运行模块的代码. 第 2 章谈论字符驱动以及展示一个基于内存
的设备驱动的代码, 出于乐趣对它读写. 使用内存作为设备的硬件基础使得任
何人可以不用要求特殊的硬件来运行代码.
调试技术对程序员是必备的工具, 第 4 章介绍它. 对那些想分析当前内核的人
同样重要的是并发的管理和竞争情况. 第 5 章关注的是由于并发存取资源而导
致的问题, 并且介绍控制并发的 Linux 机制.
在具备了调试和并发管理的能力下, 我们转向字符驱动的高级特性, 例如阻塞
操作, selet 的使用, 以及重要的 ioctl 调用; 这是第 6 章的主题.
在处理硬件管理之前, 我们研究多一点内核软件接口: 第 7 章展示了内核中是
如何管理时间的, 第 8 章讲解了内存分配.
接下来我们集中到硬件. 第 9 章描述了 I/O 口的管理和设备上的内存缓存;
随后是中断处理, 在 第 10 章. 不幸的是, 不是每个人都能运行这些章节中的
例子代码, 因为确实需要某些硬件来测试软件接口中断. 我们尽力保持需要的
硬件支持到最小程度, 但是你仍然需要某些硬件, 例如标准并口, 来使用这些
章节的例子代码.
第 11