核心定义
- 用户态 (User Mode): CPU 只能执行非特权指令(加减乘除、跳转)。如果试图执行特权指令(如修改页表寄存器
satp),CPU 会触发异常。 - 内核态 (Kernel Mode): CPU 可以执行所有指令,访问所有内存地址。
边界跨越
程序不能随意从 User 切换到 Kernel。
- 主动: 通过
ecall指令触发 System Call(如write)。 - 被动: 外部设备中断(如时钟中断)或 异常(如缺页)。
安全视角
攻击者的终极目标通常是 Privilege Escalation (提权),即欺骗内核执行恶意代码,或者利用内核 Bug 获取 Kernel Mode 权限。一旦进入内核态,就没有防火墙了。