linux内核模块
linux系统内核继承了unix系统内核风格,并加入了微内核的现代操作系统设计理念,形成了其自身的内核模块结构,实现了对模块的动态加载。其内核由五个子系统组成,即进程调度,内存管理,虚拟文件系统,进程通信和网络接口,如图所示:
1.进程调度
进程调度由于控制系统中的进程对CPU的访问。当需要调度一个进程开始运行时,linux系统的进程调度程序采用基于优先级和时间片的调度算法来选择一个符合运行条件的进程进入CPU运行。
2.内存管理
Linux系统内存管理的主要任务是为驻留在内存中的多个进程运行提供良好的环境,方便用户使用内存,提高内存的利用率及能够从逻辑上扩充内存,即支持虚拟内存。虚拟存储管理能够保证当前运行程序所使用的内存大小可以超过实际内存的大小,操作系统只将当前运行程序急需的模块保留在内存中,其余模块放在外存上,当需要时,操作系统负责外存与内存之间交换模块。但是虚拟内存实现需要硬件支撑。
3.虚拟文件系统
虚拟文件系统隐藏了实现对不同硬件访问的具体细节,为所有设备提供统一的标准接口。linux系统的虚拟文件系统虽然能够支持多达数十种不同文件系统,这也是linux系统与其他操作系统不同的地方,但是这些虚拟文件系统主要分为逻辑文件系统和设备驱动程序。逻辑文件系统是指linux系统所支持的文件系统,如EXT2,EXT3,FAT,VFAT等。设备驱动程序是指为每种硬件控制器所编写的设备驱动程序模块。
4.进程通信
进程通信linux系统能够支持进程间的各种通信机制,包括共享内存,消息队列,管道。
5.网络接口
网络接口提供了对各种网络标准的存取和网络硬件设备的支持,分为网络协议和网络设备驱动程序。网络协议负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通信,每种硬件设备都有相应的设备驱动程序。
总之 各个子系统中,进程调度处于核心地位,其他子系统依赖于进程调度实现各自功能,也就是说,linux系统通过系统调用与用户进行交互,并提供设备驱动程序以实现各个子系统与硬件设备的通信。

京公网安备 11010502036488号