知识卡片
特权级别:用硬件强制操作系统的权限边界
内容
仅靠软件约定”进程不能访问自己被分配区域之外的内存”是不够的,因为进程理论上可以自己修改记录内存边界的寄存器来绕过限制。真正的解法是把这种能力锁进硬件:CPU 设计出”有特权”和”无特权”两种运行模式,只有在有特权模式下才能执行修改内存边界寄存器、切换特权模式等特权指令;操作系统在把时间片交给某个进程前,会主动把 CPU 切到无特权模式,一旦该进程试图执行特权指令,CPU 会自动触发中断,把控制权交还操作系统处理。发散:这揭示了一个通用的安全设计原则——单靠软件层面的”约定俗成”无法防御恶意或有 bug 的代码,真正可靠的边界必须下沉到比被约束对象权限更低的层次去强制执行,操作系统不信任进程的自觉性,正如内核态/用户态的隔离不信任任何用户态代码的自觉性。
参考来源
《计算机科学概论》第3章《操作系统》