现在的位置: 首页 > 综合 > 正文

一致代码段与非一致代码段

2013年04月03日 ⁄ 综合 ⁄ 共 520字 ⁄ 字号 评论关闭

   定义这个概念主要是为了系统安全:内核要和用户程序分开,内核一定要安全不能被用户程序干涉。但有时候用户程序也需要读取内核的某些数据。于是操作系统内核程序开辟一些可以供用用户程序访问的段,但是不允许用户程序写入数据。内核不用知道用户程序的数据.内核不用调用用户程序的数据.内核不用转移到用户程序中来。用户程序只能访问到内核的某些共享的段.我们称这些段为一致代码段。用户程序不能访问内核不共享的段。

于是就有了代码段的一致(Comforming)和非一致的概念:

一致代码段:也就是共享的段。

a、  低特权级程序可以访问高特权级数据。但是特权级不会改变。即:DPL(描述符特权级)<CPL(当前特权级)是跳转成功后,CPL不变,从而体现出一致。

b、  特权级高的程序不允许访问特权级低的数据,这是防止用户篡改核心态的数据。导致核心态执行用户代码。而造成内核崩溃。

非一致代码段:也就是普通代码段。

a、  只允许同级间访问,即只有CPL=DPL才允许转移

b、  绝对禁止不同级间的访问,即用户态不允许访问特权态,特权态不允许访问用户态。

 

对于数据段:

   所有的数据段都是非一致性的,但是与代码段不同,数据段可以被更高特权级的程序访问而无需使用特殊的访问门。

抱歉!评论已关闭.