Linux由用户空间和内核两部分组成,之所以有这两部分构成,我想应该是由于考虑CPU体系结构
嵌入式ARM处理器有七种工作状态,分别是用户模式、快速中断、外部中断、管理模式、数据访问终止模式、系统模式和为定义指令模式,
而X86体系结构的CPU则有RING0~RING3 四种工作模式,这些工作模式是有权限限制的,例如在访问IO设备上
Linux利用CPU这中架构,用户空间和内核空间分别工作在不同的模式下,
X86体系上,用户代码工作在RING3,而内核代码则工作中在RING0上
如果想切换工作状态,可以通过系统调用和硬件中断两种方式来触发
例如在ARM中,我们实用寄存器CPSR前四位来控制CPU的七种工作模式的转换!
当然工作模式不是随便切换的,例如在切换至中断时候,在中断向量表中指定的空间我们要编写中断服务程序。
下面是Linux内核的七大组成部分
世界上那些最容易的事情中,拖延时间最不费力。