一、linux体系结构
linux由用户空间和内核空间构成如下图所示:
现代CPU通常实现了不同的工作模式,以ARM为例,实现了7种工作模式:
用户模式(usr)、快速中断模式(fiq)、系统模式(sys)、管理模式(svc)、外部中断模式(irq)、数据访问中止(abt)、未定义指令异常(und)。
linux操作系统分别使用了其中的模式来运行内核与应用程序,不同的模式对应的权限不同个,这样使操作系统本身得到充分的保护。
内核空间和用户空间是程序执行的两种不同的状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。
二、linux内核是如何构成的
由上图可以看出,linux内核空间由系统调用接口,进程管理单元、虚拟文件系统、内存管理单元、网络协议栈、设备驱动、与cpu相关的体系结构
2.1、系统调用接口
SCI接口为用户空间提供了一套标准的系统调用函数来访问linux内核,搭起了用户空间和内核空间之间的桥梁
2.2、进程管理
进程管理的内容是创建进程(fork、exec),停止进程(kill、exit),并控制他们之间的通信(signal或者POSIX机制)。进程管理还包括控制活动进程如何共享CPU,即进程调度
2.3、内存管理
内存管理的主要作用是控制多个进程安全地共享内存区域。
2.4、网络协议栈
内核协议栈为linux提供了丰富的网络协议实现
2.5、虚拟文件系统
VFS隐藏各种文件系统的具体细节,为文件操作提供统一的接口
2.6、设备驱动
linux内核中有大量代码都在设备驱动程序中,他们控制特定的硬件设备