内核功能划分
Unix 系统支持多个进程的并发运行,每个进程都请求资源系统,例如:运算、内存、网络、连接或其他一些资源等。内核负责处理所有这些请求,根据内核完成的任务不同,可将内核划分为以下爱几个部分:
进程管理
进程管理功能负责创建和销毁进程,并处理它们和外部世界之间的连接(输入和输出)。不同进程之间的通信(信号,管道….)是整个系统的基本功能,也有内核处理。除此之外,控制进程如何共享CPU的调度器也是进程管理的一部分。总的来讲,内核进程管理 活动就是在单个或多个CPU上实现了多个进程的抽象。
内存管理
内存是计算机的主要资源之一,用来管理内存的策略是决定系统性能的一个关键因素。内核在有限的可用资源上为每个进程都创建了一个虚拟地址空间。内核的不同部分在和内存管理子系统交互时使用一组函数调用,包括简单的malloc/free函数以及其他复杂的函 · 数。
文件系统
Unix 在很大程度上依赖文件系统的概念,Unix中的每个对象几乎都可以当作文件系统来看待,内核在没有结构的硬件上构造结构化的文件系统,而文件抽象在整个系统中广泛使用。另外,Linux支持多种文件系统类型,也就是在物理介质上组织数据的不同方式。例 如:磁盘可以格式化为符合Linux标准的ext3文件系统,也可以格式化为常用的FAT文件系统或其他种类。
设备控制
几乎每一个系统操作最终都会映射到物理设备上。除了处理器、内存以及其他很有限的几个对象外,所有设备控制操作都由与被控制设备相关的代码来完成,这段代码就叫做驱动程序。内核必须为系统中的每件外设嵌入相应的驱动程序,包括键盘,硬盘驱动器
磁带驱动器等。
网络功能
网络功能也必须由操作系统来管理,因为大部分网络操作和具体的进程无关:数据包的传入是异步事件。在某个进程处理这些数据包之前必须收集、标识和分发这些数据包。系统负责在应用程序和网络接口之间传递数据包,并根据网络活动控制程序的执行。所有的 路由和地址解析问题都由内核处理。