基本概念

RPL: Requested Privilege Level, 请求特权级
DPL: Descriptor Privilege Level,描述符特权级
CPL: Current Privilege Level,当前特权级

RPL, CPL与DPL实现数据段保护

DPL存在于段描述符(Segment Descriptor)中,代表着要访问当前数据或者是代码段所需要的特权等级。
CPL是当前代码的特权级,RPL是你请求的特权级,简单的说,只有当max(RPL, CPL) <= DPL时,访问才能成功.
原文链接

生动的理解

CPL是当前进程的权限级别(Current Privilege Level),是当前正在执行的代码所在的段的特权级,存在于cs寄存器的低两位。
RPL说明的是进程对段访问的请求权限(Request Privilege Level),是对于段选择子而言的,每个段选择子有自己的RPL,它说明的是进程对段访问的请求权限,有点像函数参数。而且RPL对每个段来说不是固定的,两次访问同一段时的RPL可以不同。RPL可能会削弱CPL的作用,例如当前CPL=0的进程要访问一个数据段,它把段选择符中的RPL设为3,这样虽然它对该段仍然只有特权为3的访问权限。
DPL存储在段描述符中,规定访问该段的权限级别(Descriptor Privilege Level),每个段的DPL固定。
当进程访问一个段时,需要进程特权级检查,一般要求DPL >= max {CPL, RPL}
    下面打一个比方,中国官员分为6级国家主席1、总理2、省长3、市长4、县长5、乡长6,假设我是当前进程,级别总理(CPL=2),我去聊城市(DPL=4)考察(呵呵),我用省长的级别(RPL=3 这样也能吓死他们:-))去访问,可以吧,如果我用县长的级别,人家就不理咱了(你看看电视上的微服私访,呵呵),明白了吧!为什么采用RPL,是考虑到安全的问题,就好像你明明对一个文件用有写权限,为什么用只读打开它呢,还不是为了安全
这篇讲的特别好

简述RPL, DPL, CPL的区别与联系相关推荐

  1. 特权级——保护模式的特权级检查 DPL,RPL,CPL, 一致代码段,非一致代码段

    特权级是保护模式下一个重要的概念,CPL,RPL和DPL是其中的核心概念,查阅资料无数,总结如下. 一.CPL.RPL.DPL简单解释     CPL是当前进程的权限级别(Current Privil ...

  2. 保护模式下的CPL,RPL,DPL与特权级检查(二)

    X86汇编语言:从事模式到保护模式读书笔记 ----------特权级保护 PS:此文并没有多长,只不过末尾附上了完整源代码占了90%的篇幅 <这是链接--保护模式下的RPL(一)--–> ...

  3. CPL RPL DPL

    从网上看到,感觉很精妙,就转贴在这里和大家一起分享. 1. CPL是当前进程的权限级别(Current Privilege Level),是cs段中的 2. RPL说明的是进程对段访问的请求权限(Re ...

  4. 微型直流减速电机简述:无刷电机与有刷电机区别分析

    参考文献 [1] 刘爱民, 倪元相. 电机与拖动技术[M]. 第二版. 大连:大连理工大学出版社, 2017. [2] 王爱元. 控制电机及其应用[M]. 第一版. 上海:上海交通大学出版社, 201 ...

  5. 简述 Hibernate 和 JDBC 的区别、优缺点

    1.hibernate是一个开源的.采用面向对象的思想实现ORM映射框架,它对jdbc进行了一层封装,对于数据库的连接.关闭.数据的持久化(增删改查).事务的管理都进行了封装,使得程序开发的时候可以用 ...

  6. Java习题3(1.封装的意义有哪些?2.final关键字的作用有哪些?3. 简述覆盖与重载的区别。4. 写一个冒泡排序算法。)

    1.封装的意义有哪些? 答: 将对象成员保护起来,使用接口对外公开,安全性更高. 读取.修改对象属性更加方便,更具有灵活性. 增加.删除对象属性在对应类中进行操作即可,不影响其他类,可维护性好. 2. ...

  7. c语言 get post,简述GET和POST的区别

    表面的区别 1. GET在浏览器回退时是无害的,而POST会再次提交请求. 2. GET产生的URL地址可以被Bookmark,而POST不可以. 3. GET请求会被浏览器主动cache,而POST ...

  8. 简述直方图和柱形图的区别_如何区分直方图与柱形图

    你还在错误的定义数据指标的展现形式吗?下面讲一下直方图和柱形图的区别. 直方图------------------------------------------------------------- ...

  9. 简述sizeof和strlen的区别

    sizeof和strlen的区别 属性不同: sizeof是运算符(关键字),strlen是函数 用法不同: sizeof可以使用类.结构体.共用体以及其他用户自定义的数据类型作为参数,然后计算相应的 ...

  10. DNS有哪两种域名解析方式?简述这两种方式区别和特点。

    DNS的两种域名解析方式:分布域名解析:集中式域名解析 区别及特点: 1.分布域名解析 是指分在客户端上维护一个静态的文本文件,其中包含主机名和IP地址的映射.随着网络规模的扩大,分布式分辨率的有效性 ...

最新文章

  1. Unity安卓游戏开发:打造7款2D 3D游戏 Unity Android Game Development : Build 7 2D 3D Games
  2. C#从剪贴板中获取数据
  3. 监听对象中某一项的值_Vue中watch的详细用法
  4. 8 使用_【化学技能8】 酸式滴定管的使用
  5. Angular Component 实现类,先执行字段初始化,再调用构造函数
  6. 5单个编译总会编译全部_VS2019 v16.5 MSVC编译器后端更新汇总
  7. 递归多线程实现前缀和
  8. 【零基础学Java】—字符串的概述和特点(十五)
  9. Linux下搭建Haproxy负载均衡
  10. windows 10 markdown pad awesomium crashed
  11. IPIP.Net地址库格式分析
  12. java获取本周日_java获取本周 上周的所有日期
  13. 浅谈大数据时代web数据可视化探析
  14. linux识别riser卡,Riser卡和PCIe槽位
  15. dns劫持 tplink_解决路由器DNS劫持的两种方法
  16. 布尔盲注运用burp的操作
  17. VUE进行前后端交互
  18. linux中安装openoffice,及解决转pdf时中文乱码或者中文不显示问题【离线】
  19. P1264 复制书稿
  20. 手机如何剪辑音频,极简操作制作专属BGM和铃声

热门文章

  1. mysql having函数
  2. linux service和chkconfig命令区别
  3. es分词查询与模糊查询
  4. 大众点评Cat源码分析(四)——Report读写逻辑
  5. 从零开始的linux 第十九章(mv命令详解)
  6. 《威胁建模:设计和交付更安全的软件》——3.11 小结
  7. jquery 开始与结束方法 loading窗
  8. Zabbix分布式监控系统使用总结
  9. IOS UIScrollView 学习记录
  10. Render OpenCascade Geometry Curves in OpenSceneGraph