处理器限制哪些操作可执行

处理器可以让不同软件在权限不同的模式下运行。某些控制寄存器、内存保护设置或其他受保护操作,只允许适当模式访问;权限不足的尝试会触发规定的异常处理。

这种区分使普通应用不能仅靠执行同样的指令就任意接管系统。它属于硬件与系统软件共同建立的边界,不能把“某个账号是管理员”直接等同于它的每条应用指令都在最高特权模式执行。

参考:[1] [2]

RISC-V给出一种具体安排

RISC-V特权规范定义用户U、监督S和机器M三种基本级别,其中M是必需级别,U和S用于支持不同复杂度的软件栈。常见安排把应用放在U模式,操作系统放在S模式,并由更底层环境承担M模式工作。

并非每个实现都具备相同模式组合。只有M模式的简单系统,与具备用户隔离和监督环境的平台提供不同保护能力;不能把一个架构的名称或数值布局写成所有处理器的统一规则。

参考:[1]

转换必须经过规定路径

系统调用或事件触发的陷入,使执行转向预先安排的处理程序;返回机制再恢复合适的执行位置与模式。应用不能自由挑选一个内核地址,便绕过入口检查取得服务。

模式与软件角色也不总是一一对应。虚拟化环境可以让为监督级编写的系统运行在受限模式,并由更高层捕获或模拟操作。解释权限时,应同时说明代码期望的接口和实际承载它的执行环境。

参考:[1] [2]