跳转至

用户态与内核态

用户态与内核态

在用户态下, 软件对系统资源的使用受到限制, 而在内核态下, 可以允许软件访问系统资源并且执行一些特权操作.

如果一个处于用户态下的软件想要使用系统资源, 则必须使用内核提供的接口(syscall)进行访问.

当用户通过内核访问系统资源时候, 操作系统将会从用户态切换到内核态, 在操作结束后, 操作系统将会从内核态切换回用户态

img

ARM的用户态与内核态实现

ARM的七种运行模式:

  1. USR用户模式:ARM处理器正常的程序执行状态
  2. FIQ快速中断模式:用于高速数据传输或通道处理
  3. IRQ外部中断模式:用户通用的中断处理
  4. SVC管理模式:操作系统使用的保护模式,处理软件中断
  5. ABT数据访问中止模式:当数据或指令预取中止时进入该模式
  6. 可用于虚拟存储器和存储器保护
  7. UND未定义指令模式:当未定义的指令执行时进入该模式
  8. 可用于支持硬件协处理器和软件仿真
  9. SYS系统模式:运行具有特权的操作系统任务
  • 用户态在ARM的用户模式下运行
  • 内核态在ARM的管理模式(Supervisor)下运行

Reference

  1. User mode and Kernel mode Switching - GeeksforGeeks
  2. User-mode Linux - Wikipedia