- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
保护模式下CPLDPLRPL的总结
保护模式 对CPL,RPL,DPL 的总结
学习过程中遇到一个对保护模式总结很好的Blog,转来分享一下。
先说下特权级的概念,在保护模式下,系统依靠特权级来实施代码和数据的保护,相当于权限
啦。特权级共有4 个级别,0,1,2,3,数字越小表示权限越高。如图:
较为核心的代码和数据放在较高(靠内)的层级中,处理器用此来防止较低特权的任务在不被
允许的情况下访问处于高特权级的段。为了防止概念混淆,我们不用特权级大小来说明,改
为内层(高),外层(低)来讲。
特权级有3 种:CPL,DPL 和RPL,每个都是有4 个等级。
我对他们的关系理解是这样:一般来说,CPL 代表当前代码段的权限,如果它想要去访问
一个段或门,首先要看看对方的权限如何,也就是检查对方的DPL,如果满足当前的权限
比要访问的权限高,则有可能允许去访问,有些情况我们还要检查选择子的权限,即RPL,
因为我们通过选择子:偏移量的方式去访问一个段,这算是一个访问请求动作,因此称为请
求访问权限RPL(Requst Privilege Level)。当请求权限也满足条件,那么访问就被
允许了。
CPL(Current Privilege Level)
CPL 是当前执行的任务的特权等级,它存储在CS 和SS 的第0 位和第 1位上。(两位表示0~3
四个等级)
通常情况下,CPL 等于代码所在段的特权等级,当程序转移到不同的代码段时,处理器将改变
CPL。
注意:在遇到一致代码段时,情况特殊,一致代码段的特点是:可以被等级相同或者更低特权级
的代码访问,当处理器访问一个与当前代码段CPL 特权级不同的一致代码段时,CPL 不会改
变。
DPL(Descriptor Privilege Level)
表示门或者段的特权级,存储在门或者段的描述符的DPL 字段中。正如上面说的那样,当当前
代码段试图访问一个段或者门时,其DPL 将会和当前特权级CPL 以及段或门的选择子比较,
根据段或者门的类型不同,DPL 的含义不同:
1.数据段的DPL:规定了访问此段的最低权限。比如一个数据段的DPL 是1,那么只有运
行在CPL 为0 或 1 的程序才可能访问它。为什么说可能呢?因为还有一个比较的因素是RPL。
访问数据段要满足有效特权级别 (上述)高于数据段的DPL.
2.非一致代码段的DPL(不使用调用门的情况):DPL 规定访问此段的特权,只有CPL 与
之相等才有可能访问。
3.调用门的DPL,规定了程序或任务访问该门的最低权限。与数据段同。
4.一致代码段和通过调用门访问的非一致代码段,DPL 规定访问此段的最高权限。
比如一个段的DPL 为2,那么CPL 为0 或者 1 的程序都无法访问。
5. TSS 的DPL,同数据段。
RPL (Rquest Privilege Level)
RPL 是通过选择子的低两位来表现出来的(这么说来,CS 和SS 也是存放选择子的,同时CPL
存放在CS 和SS 的低两位上,那么对CS 和SS 来说,选择子的RPL=当前段的CPL)。处理
器通过检查RPL 和CPL 来确认一个访问是否合法。即提出访问的段除了有足够的特权级CPL,
如果RPL 不够也是不行的(有些情况会忽略RPL 检查)。
为什么要有RPL?
操作系统往往通过设置RPL 的方法来避免低特权级的应用程序访问高特权级的内层数据。
例子情景:调用者调用操作系统的某过程去访问一个段。
当操作系统(被调用过程)从应用程序(调用者)接受一个选择子时,会把选择子的RPL 设置称调
用者的权限等级,于是操作系统用这个选择子去访问相应的段时(这时CPL 为操作系统的等级,
因为正在运行操作系统的代码),处理器会使用调用者的特权级去进行特权级检查,而不是正在
实施访问动作的操作系统的特权级(CPL),这样操作系统就不用以自己的身份去访问(就防止了
应用去访问需要高权限的内层数据,除非应用程序本身的权限就足够高)。
那么 RPL 的作用就比较明显了:因为同一时刻只能有一个CPL,而当低权限的应用去调用拥
有至高权限的操作系统的功能来访问一个目标段时,进入操作系统代码段时CPL 变成了操作系
统的CPL,如果没有RPL,那么权限检查的时候就会用CPL,而这个CPL 权限比应用程序高,
也就可能去访问需要高权限才能访问的数据,这就不安全了。所以引入RPL,让它去代表访问
权限,因此在检查CPL 的同时,也会检查RPL.一般来说如果RPL 的数字比CPL 大(权限比
CPL 的低),那么RPL 会起决定性作用。
说这么多不明白都不行啦~真累
下面是
您可能关注的文档
最近下载
- 大学计算机(西安交通大学)中国大学MOOC 慕课 章节测验 期末考试答案.docx
- 血液透析充分性及影响因素护理课件.pptx
- 全国青少年编程等级考试-Python一级必备考试题库(附答案).docx
- 【智慧树】【知到】大学生劳动就业法律问题解读(2024最新版) 章节测试答案.docx VIP
- 江西省上进联考2024-2025学年高三上学期11月期中调研测试 数学 PDF版含解析.pdf
- 俯卧位通气护理ppt课件.pptx
- 幼儿园课件老鼠今天真快乐.ppt
- 《中外历史纲要》上 第14课 清朝的鼎盛与危机 ( 教学设计).docx VIP
- 解决方案经理岗位面试题及答案(经典版).pdf VIP
- 定向钻(拉管)施工方案.doc
文档评论(0)