用户态与内核态
用户态与内核态
在用户态下, 软件对系统资源的使用受到限制, 而在内核态下, 可以允许软件访问系统资源并且执行一些特权操作.
如果一个处于用户态下的软件想要使用系统资源, 则必须使用内核提供的接口(syscall
)进行访问.
当用户通过内核访问系统资源时候, 操作系统将会从用户态切换到内核态, 在操作结束后, 操作系统将会从内核态切换回用户态
ARM的用户态与内核态实现
ARM的七种运行模式:
- USR用户模式:ARM处理器正常的程序执行状态
- FIQ快速中断模式:用于高速数据传输或通道处理
- IRQ外部中断模式:用户通用的中断处理
- SVC管理模式:操作系统使用的保护模式,处理软件中断
- ABT数据访问中止模式:当数据或指令预取中止时进入该模式
- 可用于虚拟存储器和存储器保护
- UND未定义指令模式:当未定义的指令执行时进入该模式
- 可用于支持硬件协处理器和软件仿真
- SYS系统模式:运行具有特权的操作系统任务
- 用户态在ARM的用户模式下运行
- 内核态在ARM的管理模式(Supervisor)下运行