用户工具

站点工具


协议学习:x86:权限控制

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
协议学习:x86:权限控制 [2019/12/25 15:05] – 创建 zhangguo协议学习:x86:权限控制 [2023/03/17 10:12] (当前版本) – 外部编辑 127.0.0.1
行 4: 行 4:
 权限控制是指CPU对资源进行分类,使不同权限的程序只能访问自身权限所允许访问的资源。操作系统的用户态和内核态之分就是最常见的权限控制,内核态程序具有最高权限,用户态程序具有最低权限。x86架构提供两种权限控制机制-----段保护和页保护。这两种机制对应内存管理中的段机制和分页机制,下面分别进行介绍。 权限控制是指CPU对资源进行分类,使不同权限的程序只能访问自身权限所允许访问的资源。操作系统的用户态和内核态之分就是最常见的权限控制,内核态程序具有最高权限,用户态程序具有最低权限。x86架构提供两种权限控制机制-----段保护和页保护。这两种机制对应内存管理中的段机制和分页机制,下面分别进行介绍。
  
-1、段保护+====== 段保护 ====== 
  
 段保护引入了如下三种属性对权限控制进行控制。 段保护引入了如下三种属性对权限控制进行控制。
行 16: 行 17:
 程序访问一个段,要通过段寄存器得到段描述符,这样会产生2次检查,参与检查的3个属性分别是:程序本身的CPL、段寄存器的RPL、段描述符的DPL、CPL、DPL、RPL组合起来的情况有很多种,但只有当CPL<=DPL且RPL<=DPL时,访问才被允许,其余情况均被拒绝。通常可以把RPL设置成0来简化检查,此时,满足CPL<= DPL访问即被允许。 程序访问一个段,要通过段寄存器得到段描述符,这样会产生2次检查,参与检查的3个属性分别是:程序本身的CPL、段寄存器的RPL、段描述符的DPL、CPL、DPL、RPL组合起来的情况有很多种,但只有当CPL<=DPL且RPL<=DPL时,访问才被允许,其余情况均被拒绝。通常可以把RPL设置成0来简化检查,此时,满足CPL<= DPL访问即被允许。
  
-页保护+====== 页保护 ====== 
  
 页保护的思想比段保护简单,它通过再页目录项、页表项中引入一个User/Supervisor位,将页面或整个页目录项分成User和Supervisor两个特权级。该位为0时表示Supervisor模式,对应CPL=0、1、2的情况;为1表示User模式,对应CPL=3的情况。当程序运行在CPL=0、1、2也就是SuperVisor模式下时,可以访问所有页面;运行在CPL=3下的程序处于User模式只能访问User页面。 页保护的思想比段保护简单,它通过再页目录项、页表项中引入一个User/Supervisor位,将页面或整个页目录项分成User和Supervisor两个特权级。该位为0时表示Supervisor模式,对应CPL=0、1、2的情况;为1表示User模式,对应CPL=3的情况。当程序运行在CPL=0、1、2也就是SuperVisor模式下时,可以访问所有页面;运行在CPL=3下的程序处于User模式只能访问User页面。
  
 段保护和页保护是可以混用的从面带来了更为灵活的保护机制。 段保护和页保护是可以混用的从面带来了更为灵活的保护机制。
协议学习/x86/权限控制.1577257520.txt.gz · 最后更改: 2023/03/17 10:12 (外部编辑)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki