- 1
- 2
- 3
- 4
- 5
x86架构的特权级问题
资料介绍
一、特权级的基本概念与设计初衷
x86架构的特权级(Privilege Level,简称PL)是英特尔从80286处理器开始引入的保护模式核心机制,其核心设计目标是实现系统资源的隔离与保护,避免用户程序恶意或意外破坏操作系统内核、硬件设备等关键资源,同时支撑多任务、多用户环境下的安全运行。
x86架构定义了4个特权级,从高到低编号为0到3,通常也用Ring 0~Ring 3来指代:特权级编号越小,权限越高,Ring 0拥有最高权限,可以直接执行所有CPU指令、访问所有硬件资源;Ring 3权限最低,只能访问被系统授权的资源,无法直接操作硬件。传统的PC系统中,一般将操作系统内核运行在Ring 0,设备驱动也运行在Ring 0(因为驱动需要直接操作硬件),操作系统内核提供的系统服务运行在Ring 1/Ring 2,普通用户应用程序运行在Ring 3,但实际使用中绝大多数操作系统(如Windows、Linux)都只用到了Ring 0和Ring 3两个特权级,Ring 1和Ring 2很少被使用。
二、特权级的核心规则
x86架构通过一套明确的规则来控制不同特权级代码之间的控制转移、数据访问,保证低特权级代码无法随意访问高特权级资源。
1. 数据访问规则:等级严格限制
当CPU进行数据访问时,必须满足规则:当前特权级(CPL)的权限不低于被访问段的描述符特权级(DPL),也就是数值满足CPL ≤ DPL。这里CPL是当前正在执行的代码所在段的特权级,DPL是被访问数据段自身定义的特权级。
举个例子:当前代码运行在Ring 3(CPL=3),如果要访问一个DPL为0的数据段,因为3 > 0,违反规则,CPU会直接抛出保护异常,阻止访问;如果当前代码运行在Ring 0(CPL=0),访问任何DPL的数据段,0都小于等于DPL(0~3),所以都可以访问,符合规则。
2. 控制转移规则:调用门与权限检查
当代码需要从低特权级跳转到高特权级执行时,不能直接跳转,必须通过特定的合法入口,这个入口就是调用门(Call Gate)。调用门是GDT(全局描述符表)中的一种特殊描述符,它存储了目标代码段的选择子、偏移地址,同时自身也有DPL,只有当前CPL满足CPL ≤ 调用门DPL的条件,才能使用这个调用门完成跳转。
跳转完成后,CPU会自动切换栈:从低特权级栈切换到目标特权级预设好的栈,避免低特权级代码破坏高特权级栈空间。返回的时候通过ret指令,CPU会自动恢复低特权级的栈和特权级,不会出现权限滞留的问题。
如果尝试不通过调用门直接从低特权级跳转到高特权级代码段,CPU会直接触发 general protection 异常,禁止跳转。只有同特权级或者从高特权级跳转到低特权级,才可以直接跳转(跳转低特权级同样需要切换栈)。
部分文件列表
| 文件名 | 大小 |
| x86架构的特权级问题.docx | 15K |
最新上传
-
21ic小能手 打赏10.00元 1天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏310.00元 3天前
用户:mulanhk
-
21ic下载 打赏320.00元 3天前
用户:jh03551
-
21ic下载 打赏220.00元 3天前
用户:jh0355
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏210.00元 3天前
用户:小猫做电路
-
21ic下载 打赏60.00元 3天前
用户:gsy幸运
-
21ic下载 打赏60.00元 3天前
用户:zhengdai
-
21ic下载 打赏60.00元 3天前
用户:lanmukk
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏20.00元 3天前
用户:w993263495
-
21ic下载 打赏30.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:w178191520
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:w1966891335
-
21ic下载 打赏15.00元 3天前
用户:x15580286248
-
21ic下载 打赏25.00元 3天前
用户:qiufeng0299
-
21ic下载 打赏15.00元 3天前
用户:kk1957135547
-
21ic下载 打赏10.00元 3天前
用户:qingsong08
-
21ic下载 打赏10.00元 3天前
用户:电工老刘
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
ZENGYIBIN 打赏1.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:STM32的数字万用表
-
21ic小能手 打赏5.00元 3天前
-
kuangwy 打赏1.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:触控无极台灯控制方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
资料:51单片机的汽车雨刷器




全部评论(0)