分类: 嵌入式
2011-09-13 21:30:14
Linux体系结构
Linux由用户空间和内核空间两部分组成。
为什么Linux系统会被划分为用户空间与内核空间?
现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:用户模式(usr)、快速中断(fiq)、外部中断(irq)、管理模式(svc)、数据访问中止(abt)、系统模式(sys)、未定义指令异常(und)
Linux系统利用了CPU的这一特性,使用了其中的两级来分别运行Linux内核与应用程序,这样使操作系统本身得到充分的保护。
内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。
Linux内核架构
l 系统调用接口
SCI 层为用户空间提供了一套标准的系统调用函数来访问Linux内核,搭起了用户空间到内核空间的桥梁。
l 进程管理
进程管理的重点是创建进程(fork、exec),停止进程(kill、exit),并控制它们之间的通信(signal 或者 POSIX 机制)。进程管理还包括控制活动进程如何共享CPU,即进程调度。
l 内存管理
内存管理的主要作用是控制多个进程安全地共享内存区域。
l 网络协议栈
内核协议栈为Linux提供了丰富的网络协议实现。
l 虚拟文件系统(VFS)
VFS隐藏各种文件系统的具体细节,为文件操作提供统一的接口。
l 设备驱动
Linux 内核中有大量代码都在设备驱动程序中,它们控制特定的硬件设备。