内核模式和用户模式是硬件功能,特别是处理器的功能.专为中高端系统(PC,功能手机,智能手机,除最简单的网络设备之外的所有系统……)设计的处理器都包含此功能.内核模式可以使用不同的名称:管理程序模式,特权模式等.在x86(PC中的处理器类型)中,它被称为“ring 0”,用户模式称为“ring 3”.
处理器在寄存器中有一点存储空间,用于指示它是处于内核模式还是用户模式. (在具有两个以上模式的处理器上,这可能不止一位.)某些操作只能在内核模式下执行,特别是通过修改控制MMU的寄存器来更改虚拟内存配置.此外,还有从用户模式切换到内核模式的方法很少,它们都需要跳转到内核代码控制的地址.这允许在内核模式下运行的代码控制在用户模式下运行的代码可以访问的内存.
类Unix操作系统(以及大多数其他具有进程隔离的操作系统)分为两部分:
>内核以内核模式运行.内核可以做任何事情.
>进程以用户模式运行.进程无法访问硬件,无法访问其他进程的内存(显式共享除外).
因此,操作系统利用硬件功能(特权模式,MMU)来强制进程之间的隔离.
基于Microkernel的操作系统具有更细粒度的体系结构,在内核模式下运行的代码更少.
当用户模式代码需要执行不能直接执行的操作(例如访问文件,访问外设,与另一个进程通信,……)时,它会生成system call:跳转到内核代码中的预定义位置.
当硬件外围设备需要从CPU请求注意时,它会将CPU切换到内核模式并跳转到内核代码中的预定义位置.这称为interrupt.
进一步阅读