linu内核组件
linux内核可以划分为5个组件部分,每个部分的功能定义非常明确,个组件又为内核的其他组件提供相应的服务,这种划分可以从linux源码树形结构中看出来,如下组件图。
1、进程管理
负责创建、结束进程,管理内核的活动,如软件中断、tasklet等,管理进程间通信,如消息、管道等,实现进程调度,进程调度是进程管理的重要任务,它处理所有活动的、等待被执行和被阻塞的进程调度,是所有应用和进程合理地共享处理器的运行时间。
2、内存管理
内存是系统最主要的资源之一,计算机的性能在很大程度上与其所匹配的内存有关,linux内核内存管理的主要功能就是给进程分配地址空间,改地址空间只允许本进程自己访问。
3、文件系统
在linux操作系统中,文件系统是整个系统的中枢,linux和其他系统不同,几乎所有的操作都基于文件系统接口处理,如驱动设备程序可以按文件方式访问设备,通过/proc文件系统可以访问linux内核的数据和参数。
4、设备驱动程序
所有的操作系统中,设备驱动程序多事硬件的抽象,通过它可以访问硬件,linux可以用模块的方式实现设备驱动程序,提供了在系统运行时动态加载和卸载设备驱动程序的途径。
5、网络子系统
在linux中所有的网络操作都是由操作系统管理的。这是因为网络操作不能分配给某个进程完成。在处理收到的网络数据包时,数据包的接收拾异步事件。接收数据包任务必须在进程处理这些数据包之前收集齐所有的网络包、标识数据,然后向上层传送,这就是为什么由内核的网络子系统负责处理数据包,而不是由某个进程和网络接口来处理。
在内核中还定义了大量的接口,目的是为了更方便地扩展内核功能,如虚拟文件系统接口,可以增加新的文件系统,现在linux中能支持十多种不同的文件系统;在linux的网络 体系结构中也定义了很多接口,用以支持动态增加网络协议和网络设备驱动程序。