Linux核心包括几个重要部分:进程管理、存储器管理、硬件设备驱动、文件系统驱动、 网络管理和其他不同的部分。 图2.1显示了它们的一些。
可能核心最重要的部分(没有它们什么也不能工作)是存储器管理和进程管理。 存储器管理负责分配进程的存储器区域和对换空间区域、核心的部件及buffer cache。 进程管理产生进程,用切换处理器上的活动进程来实现多任务。
在最低级,核心对它支持的每种硬件包含一个硬件设备驱动。 因为世界上存在大量不同的硬件,硬件设备驱动的数量极大。 有许多不同的硬件,因此软件控制方法不同。 但其相似性可能分类驱动,支持相似的操作;每类的每个成员有相同的与核心其他部分接口,但具体实现 是不同的。例如,所有的硬盘驱动与核心其他部分接口相同,即他们都有初始化驱动器、读N扇区、写N扇区。
核心自己提供的有些软件服务有类似的抽象属性,因此可以抽象分类。 例如,不同的网络协议已经被抽象为一个编程接口:BSD socket库。 另一个例子是虚拟文件系统virtual filesystem(VFS)层, 它从文件系统操作实现中抽象出文件系统操作。 每个文件系统类型提供了每个文件系统操作的实现。 当一些实体企图使用一个文件系统时,请求通过VFS送出,它将请求发送到适当的文件系统驱动。