深入分析
Linux
内核源代码
– 4 –
协作开发模式的价值。
1.3 走进 Linux 内核
如果说 CPU 是计算机硬件的心脏的话,那么,操作系统的内核则是整个计算机系统的心
脏,或者说,是最高管理机构。Linux 的内核包含些什么?简单地说,它包含五大部分内容:
进程调度、内存管理、进程间通信、虚拟文件系统及网络接口这五部分,我们也称为五个子
系统。在走进 Linux 内核前,读者可能想知道,它到底有什么特点呢?
1.3.1 Linux 内核的特征
Linux 是个人计算机和工作站上的类 UNIX 操作系统。但是,它绝不是简化的 UNIX。相
反,Linux 是强有力和具有创新意义的类 UNIX 操作系统。它不仅继承了 UNIX 的特征,而且
在许多方面超过了 UNIX。作为类 UNIX 操作系统,Linux 内核具有下列基本特征。
(1)Linux 内核的组织形式为整体式结构。也就是说整个 Linux 内核由很多过程组成,
每个过程可以独立编译,然后用连接程序将其连接在一起成为一个单独的目标程序。从信息
隐藏的观点看,它没有任何程度的隐藏
—
每个过程都对其他过程可见。这种结构的最大特
点是内部结构简单,子系统间易于访问,因此内核的工作效率较高。另外,基于过程的结构
也有助于不同的人参与不同过程的开发,从这个角度来说,Linux 内核又是开放式的结构,
它允许任何人对其进行修正、改进和完善。
(2)Linux 的进程调度方式简单而有效。可以说 Linux 在追求效率方面孜孜不倦,体现
在调度方式上也是别具一格。对于用户进程,Linux 采用简单的动态优先级调度方式;对于
内核中的例程(如设备驱动程序、中断服务程序等)则采用了一种独特的机制
—
软中断机
制,这种机制保证了内核例程的高效运行。
(3)Linux 支持内核线程(或称守护进程)。内核线程是在后台运行而又无终端或登录
shell 和它结合在一起的进程。有许多标准的内核线程,其中有一些周期地运行来完成特定
的任务(如 swapd),而其余一些则连续地运行,等待处理某些特定的事件(如 inetd 和 lpd)。
内核线程可以说是用户进程,但和一般的用户进程又有不同,它像内核一样不被换出,因此
运行效率较高。
(4)Linux 支持多种平台的虚拟内存管理。内存管理是和硬件平台密切相关的部分,为
了支持不同的硬件平台而又保证虚拟存储管理技术的通用性,Linux 的虚拟内存管理为不同
的硬件平台提供了统一的接口,因此把 Linux 内核移植到一个新的硬件平台并不是一件很困
难的事。
(5)Linux 内核另一个独具特色的部分是虚拟文件系统(VFS Virtul File Systen)。
虚拟文件系统不仅为多种逻辑文件系统(如 ext2,fat 等)提供了统一的接口,而且为各种硬
件设备(作为一种特殊文件)也提供了统一接口。
(6)Linux 的模块机制使得内核保持独立而又易于扩充。模块机制可以使内核很容易地
增加一个新的模块(如一个新的设备驱动程序),而无需重新编译内核;同时,模块机制还