为什么CPU需要不同的特权等级?
如下图是一个经典的x86的特权等级示意图,x86有0~3共4级特权等级,但一般只有0级和3级常用。操作系统/内核工作于特权等级0,用户则工作于最低的特权等级3。
1. 特权等级是谁实现的?
当我们描述特权等级的时候,一定要区分的一个概念是:特权等级是CPU实现的,还是操作系统实现的?答案是CPU实现的。操作系统的不同模式是在CPU实现的基础上进行对应的。
2. 特权等级怎么实现的?
这里举一个RISC-V处理器的例子如下,RISC-V处理器定义了三种不同的特权等级,M,S,U三种,其中M是最高的等级,可以访问所有的资源。每一种特权等级都对应各自的一套控制寄存器(CSR),可以获取当前状态下处理器的工作状态。
3. 特权等级有什么用?
特权等级的最大作用就是保护。保护的对象可以是各种内存、IO等资源,其出发点就是对用户不放心!觉得用户写的代码会出各种bug,会破坏系统运行,因此控制用户的权限。而类
共有 0 条评论