处理器通过什么规则判断资源请求或者代码跳转是否合法?
数据段的访问规则:(数据段无可执行属性)
访问者权限(CPL)高于或者等于数据段权限(DPL)
请求特权级(RPL)高于或者等于数据段权限(DPL)
即(CPL <= DPL)&& (RPL <= DPL)
上面的公式没有阐述CPL和RPL的关系,这是因为对数据段进行访问的时候CPL和RPL是没有关系的。
怎么判断一个段是不是数据段呢?
这就要根据有无可执行属性来判断了,无可执行属性就是数据段了。
访问示例:
CPL=2, RPL=1, DPL=3,是否合法?合法
CPL=0, RPL=3, DPL=2,是否合法?不合法
CPL=0, RPL=1, DPL=2,是否合法?合法