Linux 内核系统体系结构
2012-12-31 16:24
155 查看
Linux 内核主要由 5 个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进
程间通信模块和网络接口模块。
进程调度模块用来负责控制进程对 CPU 资源的使用。
所采取的调度策略是各进程能够公平合理地访
问 CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能够安全地共享机器主
内存区,同时,内存管理模块还支持虚拟内存管理方式,使得 Linux 支持进程使用比实际内存空间更多
的内存容量。并可以利用文件系统把暂时不用的内存数据块会被交换到外部存储设备上去,当需要时再
交换回来。文件系统模块用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向所有的外部存储
设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其它操作系统兼容
的多种文件系统格式。进程间通信模块子系统用于支持多种进程间的信息交换方式。网络接口模块提供
对多种网络通信标准的访问并支持许多网络硬件。
这几个模块之间的依赖关系见图 2-3 所示。其中的连线代表它们之间的依赖关系,虚线和虚框部分
表示 Linux 0.11 中还未实现的部分(从 Linux 0.95 版才开始逐步实现虚拟文件系统,而网络接口的支持
到 0.96 版才有)。
由图可以看出,所有的模块都与进程调度模块存在依赖关系。因为它们都需要依靠进程调度程序来
挂起(暂停)或重新运行它们的进程。通常,一个模块会在等待硬件操作期间被挂起,而在操作完成后
才可继续运行。例如,当一个进程试图将一数据块写到软盘上去时,软盘驱动程序就可能在启动软盘旋
转期间将该进程置为挂起等待状态,而在软盘进入到正常转速后再使得该进程能继续运行。另外 3 个模
块也是由于类似的原因而与进程调度模块存在依赖关系。
其它几个依赖关系有些不太明显,但同样也很重要。进程调度子系统需要使用内存管理器来调整一
特定进程所使用的物理内存空间。进程间通信子系统则需要依靠内存管理器来支持共享内存通信机制。
这种通信机制允许两个进程访问内存的同一个区域以进行进程间信息的交换。虚拟文件系统也会使用网
络接口来支持网络文件系统(NFS)
,同样也能使用内存管理子系统来提供内存虚拟盘(ramdisk)设备。
而内存管理子系统也会使用文件系统来支持内存数据块的交换操作。
若从单内核模式结构模型出发,我们还可以根据 Linux 0.11 内核源代码的结构将内核主要模块绘制
成图 2-4 所示的框图结构。
其中内核级中的几个方框,除了硬件控制方框以外,其它粗线方框分别对应内核源代码的目录组织
结构。
除了这些图中已经给出的依赖关系以外,所有这些模块还会依赖于内核中的通用资源。这些资源包
括内核所有子系统都会调用的内存分配和收回函数、打印警告或出错信息函数以及一些系统调试函数。
Linux-0.11文件系统介绍
程间通信模块和网络接口模块。
进程调度模块用来负责控制进程对 CPU 资源的使用。
所采取的调度策略是各进程能够公平合理地访
问 CPU,同时保证内核能及时地执行硬件操作。内存管理模块用于确保所有进程能够安全地共享机器主
内存区,同时,内存管理模块还支持虚拟内存管理方式,使得 Linux 支持进程使用比实际内存空间更多
的内存容量。并可以利用文件系统把暂时不用的内存数据块会被交换到外部存储设备上去,当需要时再
交换回来。文件系统模块用于支持对外部设备的驱动和存储。虚拟文件系统模块通过向所有的外部存储
设备提供一个通用的文件接口,隐藏了各种硬件设备的不同细节。从而提供并支持与其它操作系统兼容
的多种文件系统格式。进程间通信模块子系统用于支持多种进程间的信息交换方式。网络接口模块提供
对多种网络通信标准的访问并支持许多网络硬件。
这几个模块之间的依赖关系见图 2-3 所示。其中的连线代表它们之间的依赖关系,虚线和虚框部分
表示 Linux 0.11 中还未实现的部分(从 Linux 0.95 版才开始逐步实现虚拟文件系统,而网络接口的支持
到 0.96 版才有)。
由图可以看出,所有的模块都与进程调度模块存在依赖关系。因为它们都需要依靠进程调度程序来
挂起(暂停)或重新运行它们的进程。通常,一个模块会在等待硬件操作期间被挂起,而在操作完成后
才可继续运行。例如,当一个进程试图将一数据块写到软盘上去时,软盘驱动程序就可能在启动软盘旋
转期间将该进程置为挂起等待状态,而在软盘进入到正常转速后再使得该进程能继续运行。另外 3 个模
块也是由于类似的原因而与进程调度模块存在依赖关系。
其它几个依赖关系有些不太明显,但同样也很重要。进程调度子系统需要使用内存管理器来调整一
特定进程所使用的物理内存空间。进程间通信子系统则需要依靠内存管理器来支持共享内存通信机制。
这种通信机制允许两个进程访问内存的同一个区域以进行进程间信息的交换。虚拟文件系统也会使用网
络接口来支持网络文件系统(NFS)
,同样也能使用内存管理子系统来提供内存虚拟盘(ramdisk)设备。
而内存管理子系统也会使用文件系统来支持内存数据块的交换操作。
若从单内核模式结构模型出发,我们还可以根据 Linux 0.11 内核源代码的结构将内核主要模块绘制
成图 2-4 所示的框图结构。
其中内核级中的几个方框,除了硬件控制方框以外,其它粗线方框分别对应内核源代码的目录组织
结构。
除了这些图中已经给出的依赖关系以外,所有这些模块还会依赖于内核中的通用资源。这些资源包
括内核所有子系统都会调用的内存分配和收回函数、打印警告或出错信息函数以及一些系统调试函数。
Linux-0.11文件系统介绍
相关文章推荐
- Linux 内核系统体系结构
- Linux 内核系统体系结构
- Linux体系结构(二): Linux系统层次
- linux体系结构与内核结构图解
- Linux内核异常处理体系结构
- Linux体系结构(五): 文件系统
- 内核模块简介(1)-linux内核体系结构(1)
- Linux 文件系统体系结构
- Unix/Linux操作系统的体系结构及系统调用介绍
- linux内核驱动的学习第一天——linux系统的结构
- Linux体系结构与内核结构图解
- linux体系结构与内核结构图解
- Linux基础——系统之冯诺依曼体系结构
- linux 内核 arch 目录下处理器体系结构
- Linux 内核系统结构及主要组成部分
- 深入理解Linux内核-I/O体系结构和设备驱动程序
- Linux系统基本结构之一 内核的组成以及运行原理
- Linux内核网络系统结构图(TCP/IP)和源代码的布局
- linux系统编程之文件与I/O(五):文件的内核结构file和dup实现重定向
- linux系统编程之文件与I/O(五):文件的内核结构file和dup实现重定向