一致性代码段和非一致性代码段【转】

转载 2016年08月30日 19:17:14

一致代码段是内核开辟出来的供应用程序访问的段,但是不允许用户程序写入数据。

  1. CPL(Current Priviliege Level):它代表了当前代码段的特权等级,由CS和SS的第0位和第1位表示。当程序转移到不同的特权等级的代码时处理器将改变CPL。在遇到一致代 码段时,一致代码可以被相同或者更低特权等级(用户程序)的代码访问。当处理器访问一个与CPL特权等级不同的一致代码段时,CPL不会被改变。
  2. DPL(Descriptor Priviliege Level):表示段或者门的特权等级。它存储在段或者门描述符的DPL字段中。当当前代码段试图访问一个段或者门时,DPL将会和CPL以及RPL作比 较,根据段或者门类型的不同,DPL将会被区别对待: 数据段:DPL规定了可以访问此段的最低特权等级。 非一致代码段(不使用调用门的情况下):DPL规定了访问此段的特权级。 调用门:与数据段一致。 一致代码段和通过调用门访问的非一致代码段:DPL规定了访问此段的最高特权等级。 TSS:与数据段一致。
  3. RPL(Requested Priviliege Level):RPL是通过选择子的第0位和第1位来表示的。处理器通过检查RPL和CPL来确认一个访问请求是否合法。即使提出请求的段有足够的特权级,如果RPL不够也是不行的。也就是说,如果RPL的数字比CPL大,那么RPL将会起决定作用,反之亦然。 

似乎下面的解释更直观一些:

  • 对于一致代码段:也就是共享的段.

    1. 特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的数据.
    2. 特权级低的程序可以访问到特权级高的数据.但是特权级不会改变:用户态还是用户态.
  • 对于普通代码段.也就是非一致代码段:
    1. 只允许同级间访问.
    2. 绝对禁止不同级访问:核心态不用用户态.用户态也不使用核心态.

保护模式下,什么是一致性代码和非一致性代码段

C++ 保护模式下,什么是一致性代码和非一致性代码段 李健 3 票 706 ...
  • linuxheik
  • linuxheik
  • 2012年11月17日 21:40
  • 987

CPL RPL DPL 一致代码段 非一致代码段 总结

 访问不同的数据段和代码段会产生特权级检查。 CPL—当前执行任务或程序的特权级,在CS和SS段寄存器的0、1位保存。正常情况下CPL与取指令的代码段特权级相同,当程序跳转到不同特权级...
  • chen1540524015
  • chen1540524015
  • 2017年07月01日 16:14
  • 183

RPL DPL CPL 与一致性 非一致性代码段

原文在此http://gtkchen.blog.sohu.com/104059250.html
  • zhang_shuai_2011
  • zhang_shuai_2011
  • 2013年01月09日 11:20
  • 454

一致性代码段和非一致性代码段

一致代码段&非一致代码段     之所以出现这个定义是因为系统要安全:内核要和用户程序分开.内核一定要安全.不能被用户程序干涉.但是有时候用户程序也需要读取内核的某些数据,怎么办呢?     于是...
  • lipengfei634626165
  • lipengfei634626165
  • 2013年09月05日 10:54
  • 429

一致与非一致代码段

http://m.blog.csdn.net/blog/erazy0/6046257 CPL代表当前代码段的权限,如果它想要去访问一个段或门,首先要看看对方的权限如何,也就是检查对方的D...
  • youqika
  • youqika
  • 2014年07月15日 19:15
  • 541

一致性/非一致性代码段的总结

关于一致性代码段和非一致性代码段的由来:http://wenda.tianya.cn/wenda/thread?tid=0cc76471fd94f119   代码段分为一致代码段和非一致代码段,这...
  • li4850729
  • li4850729
  • 2012年07月13日 14:41
  • 1852

一致和非一致性代码段

对于一致代码段:也就是共享的段. 1.特权级高的程序不允许访问特权级低的数据:核心态不允许调用用户态的数据. 2.特权级低的程序可以访问到特权级高的数据.但是特权级不会改变:用户态还是用户态. ...
  • gaokewoo
  • gaokewoo
  • 2014年05月23日 13:48
  • 228

第十四天:规划质量管理,一致性成本、非一致性成本、质量七工具

  • toto1297488504
  • toto1297488504
  • 2016年07月09日 21:53
  • 6018

一致与非一致性代码段

之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉. 但是有时候用户程序也需要读取内核的某些数据,怎么办呢? 于是os将内核程序开辟一些可以供用用户程序访问...
  • HMSIWTV
  • HMSIWTV
  • 2013年11月04日 20:27
  • 639

CPL DPL RPL的区别 &&一致性代码段和非一致性代码段

概述:在谈论保护模式编程的时候,一直会有这样的困惑:为什么除了CPL和DPL还有RPL?什么时候高特权级不能访问低特权级?什么时候低特权级不能访问高特权级?一致性代码和非一致性代码有什么区别?等等这些...
  • acmilanvanbasten
  • acmilanvanbasten
  • 2014年08月26日 19:09
  • 902
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一致性代码段和非一致性代码段【转】
举报原因:
原因补充:

(最多只允许输入30个字)