Linux核心包括几个重要部分:进程管理、存储器管理、硬件设备驱动、
文件系统驱动、网络管理和其他不同的部分。
核心最重要的部分是存储器管理和进程管理。存储器管理负责分配进程
的存储区域和对换空间区域、核心的部件及buffer cache.进程管理产生进程
用切换处理器时光上的活动进程来实现多任务。
在最低级,核心对它支持的每种硬件包含一个硬件驱动。因为世界上存在
大量的不同的硬件,硬件设备的驱动数量很大。有许多不同的硬件,因此软件
的控制方法不同。但其相似性可能分类驱动,支持相似的操作;每类的每个
成员有相同的与核心其他部分的接口,但具体实现是不同的。例如,所有的硬盘
驱动与核心其他部分接口相同,即他们都有初始化驱动器、读N扇区、写N扇区。
核心自己提供的有些软件服务有类似的抽象属性,因此可以抽象分类。例如
不同的网络协议已经被抽象为一个编程接口:BSD socket库。另一个例子是虚拟
文件系统virtual filesystem(VFS)层,它从文件系统操作实现中抽象出来文件系统。每个文件系统类型提供了 每个文件系统操作的实现。当一些实体企图使用一个文件系统时,请求通过(VFS)送出,它将请求发送到适当的文件系统驱动。
_____________________
| User level programes|
`` |````|````|````| `` Normal programs
-------------------|----|----|----|-------------------------------
V V V V kernel
_____________________________________________________
| System call interface |
`````|````````````````|``````````|``````````````|```````
V V V V
-------------- --------- ---------- -----------------
|VFS management| |memory M| |Process M| |Network services|
`````|`````````` ````````` `````````` ```````|`````````
V V
------------------- -----------------
|various filesystem| |TCP/IP protocol |
| drivers | |drivers |
``````|```````````\` ```````|`````````
V \ V
------------ -------------- --------------
|IDE harddisk| |Floppy disk | |Ethernet card|
|driver | |driver | |driver |
`````|``````` ``````|``````` ````````|````` kernel
------|-------------------|----------------------|----------------
V V V hardware
------------- -------------- --------------
|IDE harddisk| |Floppy disk | |Ethernet card|
````````````` ````````````` ``````
Linux核心最重要的部分