Linux由用户空间和内核两部分组成,之因此有这两部分构成,我想应该是因为考虑CPU体系结构架构
嵌入式ARM处理器有七种工做状态,分别是用户模式、快速中断、外部中断、管理模式、数据访问终止模式、系统模式和为定义指令模式,ide
而X86体系结构的CPU则有RING0~RING3 四种工做模式,这些工做模式是有权限限制的,例如在访问IO设备上it
Linux利用CPU这中架构,用户空间和内核空间分别工做在不一样的模式下,class
X86体系上,用户代码工做在RING3,而内核代码则工做中在RING0上硬件
若是想切换工做状态,能够经过系统调用和硬件中断两种方式来触发权限
例如在ARM中,咱们实用寄存器CPSR前四位来控制CPU的七种工做模式的转换!程序
固然工做模式不是随便切换的,例如在切换至中断时候,在中断向量表中指定的空间咱们要编写中断服务程序。im
下面是Linux内核的七大组成部分数据