1、linux系统构成
由用户空间和内核空间构成。其中用户空间由应用程序和C库;内核空间由系统调用接口、kernel、架构代码、硬件设备平台
为什么linux系统会被划分为用户空间和内核空间?处于安全性考虑。
ARM的7种工作模式:1、usr用户模式:正常执行程序,一般程序运行在用户模式。
2、svc管理模式:操作系统使用的保护模式
3、sys 系统模式:类似管理员权限,可以运行特权的操作任务
4、IRQ外部中断模式:硬件上定时器、串口、输入等通常的中断处理
5、FIQ快速中断模式:应用于高速数据传输和存储 DMA
6、abt数据访问异常:当数据或指令预取终止进入该模式
7、und未定义指令模式:当未定义的指令被执行时,进入该模式
在不同模式,对寄存器的访问权限是不同的。例如:X86实现4个不同的级别:Ring0-Ring3.在Ring0下,可以执行特权指令(等同最高管理员),可以访问IO设备,在Ring3则有很多限制。Linux系统利用了CPU的这一特性,使用其中的两级分别运行内核与应用程序,这样使 操作系统本身得到充分保护。
例如:如果在X86平台运行,用户代码运行在权限最低的Ring3,而内核代码运行在权限最高的Ring0上,来实现内核安全性。
2、工作状态切换
如何实现用户空间与内核空间的工作状态切换?
内核空间和用户空间是程序执行的两种不同状态,通过系统调用和硬件中断完成用户空间到内核空间切换
系统调用:open()、read()等系统调用函数,硬件中断:比如uart中断、定时器中断等
3、linux内核构成
linux内核由进程管理、内存管理、架构代码、系统调用接口、设备驱动、网络协议栈、虚拟文件系统 共7部分组成。
详见下图:
系统调用接口:为用户空间提供访问内核空间的一套 标准系统调用函数,起到桥梁作用。
进程管理:1、重点创建进程(fork)、停止进程(kill、exit),2、控制进程间通信 3、进程调度(控制活动进程如何共享CPU)
内存管理:控制多个进程安全地共享内存区域
架构代码:该处代码同cpu类型有关。
网络协议栈:为linux提供丰富的网络协议。1、网络比较稳定 2、支持网络协议比较多 这是linux的强项
虚拟文件系统:隐藏各种文件系统的具体细节,为文件操作提供统一的接口。