Linux内核主要由五个部分组成:进程调度、内存管理、文件系统、网络子系统、设备管理。图1-5为Linux内核的架构原理,可见应用层通过系统调用访问Linux内核,而Linux内核通过设备驱动来访问各种硬件设备。
图1-5 Linux内核架构原理
(1)进程调度(Process Schedule):Linux支持多任务与多进程,Linux内核调度器基于优先级可动态调整的进程调度器。Linux进程的通信支持系统V的各种通信机制。Linux内核从2.6.23版本开始采用CFS(Completely Fair Scheduler)调度器。CFS的主要理念是为任务提供处理器时间方面的公平性,确保每个任务能够有时间执行。CFS采用红黑树思想来管理进程调度。
(2)内存管理(Memory Management):Linux的内存管理支持虚拟内存,它采取的是分页机制。内存管理子系统允许多个进程安全地共享主内存区域。通过内存管理,Linux可支持超过实际内存大小的内存地址,磁盘可以被用作内存,磁盘与内存之间可以相互交换。嵌入式处理器中的MMU单元就是用来实现内存管理的,虚拟地址到物理地址的映射就是由MMU单元完成的。(www.xing528.com)
(3)文件系统(Filesystem):Linux内核支持多种文件系统,在Linux操作系统中,用户甚至可以访问Windows系统的文件,这得益于Linux内核中的虚拟文件系统(简称VFS)。VFS使用一个通用的文件模型来管理不同的文件系统,为所有的存储设备提供了统一的接口。VFS支持的文件系统包括ext2、ext3、ext4、fat、jffs2、ubifs等,多达数十种。
(4)设备管理(Device Management):Linux支持字符设备、块设备及网络设备三类硬件设备,并提供了平台设备的概念与sys文件系统来管理各种设备。Linux的设备驱动可以编译进内核,在系统启动时加载,也可以作为模块形式动态地加载。从2.6版内核开始,Linux提供了统一的内核设备模型,这个模型的最高层抽象为Kobject,这个数据结构使所有设备在底层都具有统一的接口。
(5)网络子系统(Network Subsystem):对网络协议的支持从一开始就是Linux的重要特性。Linux网络子系统包括网络协议部分与网络驱动程序。网络协议部分负责实现各种网络协议,而网络设备驱动程序负责与物理网卡通信。在应用层,Linux支持网络套接字接口。正因为Linux具有强大的网络子系统,目前Linux在网络服务器、交换与路由设备中的应用非常广阔。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。