-
-
[讨论]CPL,DPL,RPL备完录
-
发表于: 2016-9-19 10:45 3099
-
CPL(current Privilege level)CPL----当前执行的程序或者任务的特权级,被存储在CS和SS的第0和1位上。CPL等于代码所在的特权级,对于一致代码段越权访问的时候不会报错。而非一致代码段越权访问的时候会引起常规的保护错误。
一致代码段-----由段描述符数据结构中的属性字段决定(由S位为1为和TYPE位最高位为1)一致的意思是当转移的目标是一个特权级更高的代码段时,当前的特权级会被延续下去,而非一致代码段转移会引起错误。
DPL表示段或者门的特权级,存储在段描述符或者门描述符的DPL字段中,当当前代码段访问一个段或者门时,DPL将会和CPL以及段或者门选择子的RPL相比较。DPL的比较分为下面5种情况:
1.数据段:DPL规定了可以访问此段的最低特权级。
2.非一致代码段(不使用调用门情况下):DPL规定了访问此段的特权级。
3.调用门:DPL规定了当前执行的程序或者任务可以访问此调用门的最低特权级(这个和数据段的规则是一致的)
4.一致代码段和通过调用门访问的非一致代码段:DPL规定了可以访问此段的最高特权级
5.TSS:DPL规定了可以访问此TSS的最低特权级。
RPL(Requested Privilege Level)RPL是通过段选择子的第0位和第1位表示出来的。处理器通过检查RPL和CPL来确认一个访问请求是否合法。
对数据段的访问是检查特权级,只要CPL和RPL都小于或等于被访问的数据段的DPL就可以了。
对程序段的访问比较复杂,程序从一个代码转移到另外一个代码之前,目标代码的选择子会被加载到CS中,作为加载的一部分,处理器将检查描述符的界限、类型、特权级的内容。如果检验成功,cs将会被加载。
一致代码段-----由段描述符数据结构中的属性字段决定(由S位为1为和TYPE位最高位为1)一致的意思是当转移的目标是一个特权级更高的代码段时,当前的特权级会被延续下去,而非一致代码段转移会引起错误。
DPL表示段或者门的特权级,存储在段描述符或者门描述符的DPL字段中,当当前代码段访问一个段或者门时,DPL将会和CPL以及段或者门选择子的RPL相比较。DPL的比较分为下面5种情况:
1.数据段:DPL规定了可以访问此段的最低特权级。
2.非一致代码段(不使用调用门情况下):DPL规定了访问此段的特权级。
3.调用门:DPL规定了当前执行的程序或者任务可以访问此调用门的最低特权级(这个和数据段的规则是一致的)
4.一致代码段和通过调用门访问的非一致代码段:DPL规定了可以访问此段的最高特权级
5.TSS:DPL规定了可以访问此TSS的最低特权级。
RPL(Requested Privilege Level)RPL是通过段选择子的第0位和第1位表示出来的。处理器通过检查RPL和CPL来确认一个访问请求是否合法。
对数据段的访问是检查特权级,只要CPL和RPL都小于或等于被访问的数据段的DPL就可以了。
对程序段的访问比较复杂,程序从一个代码转移到另外一个代码之前,目标代码的选择子会被加载到CS中,作为加载的一部分,处理器将检查描述符的界限、类型、特权级的内容。如果检验成功,cs将会被加载。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
看原图
赞赏
雪币:
留言: