进程管理
内核负责创建和销毁进程, 并处理它们与外部世界的联系(输入和输出). 不同进程间通讯(通
过信号, 管道, 或者进程间通讯原语)对整个系统功能来说是基本的, 也由内核处理. 另外, 调
度器, 控制进程如何共享 CPU, 是进程管理的一部分. 更通常地, 内核的进程管理活动实现了
多个进程在一个单个或者几个 CPU 之上的抽象.
内存管理
计算机的内存是主要的资源, 处理它所用的策略对系统性能是至关重要的. 内核为所有进程
的每一个都在有限的可用资源上建立了一个虚拟地址空间. 内核的不同部分与内存管理子
系统通过一套函数调用交互, 从简单的 malloc/free 对到更多更复杂的功能.
文件系统
Unix 在很大程度上基于文件系统的概念; 几乎 Unix 中的任何东西都可看作一个文件. 内核
在非结构化的硬件之上建立了一个结构化的文件系统, 结果是文件的抽象非常多地在整个
系统中应用. 另外, Linux 支持多个文件系统类型, 就是说, 物理介质上不同的数据组织方式.
例如, 磁盘可被格式化成标准 Linux 的 ext3 文件系统, 普遍使用的 FAT 文件系统, 或者其他几
个文件系统.
设备控制
几乎每个系统操作最终都映射到一个物理设备上. 除了处理器, 内存和非常少的别的实体之
外, 全部中的任何设备控制操作都由特定于要寻址的设备相关的代码来进行. 这些代码称为
设备驱动. 内核中必须嵌入系统中出现的每个外设的驱动, 从硬盘驱动到键盘和磁带驱动器.
内核功能的这个方面是本书中的我们主要感兴趣的地方.
网络
网络必须由操作系统来管理, 因为大部分网络操作不是特定于某一个进程: 进入系统的报文
是异步事件. 报文在某一个进程接手之前必须被收集, 识别, 分发. 系统负责在程序和网络接
口之间递送数据报文, 它必须根据程序的网络活动来控制程序的执行. 另外, 所有的路由和地
址解析问题都在内核中实现