-
Segment Limit
存放段最后一个内存单元的偏移量,从而决定段的长度,如果G被置为0,则一个段的大小在1个字节到1MB之间变化,否则,将在4KB到4GB之间变化。 -
Base Address
包含段的首字节的线性地址。 -
Type
描述了段的类型特征和它的存取权限。 -
S
系统标志:如果被清0,则这个一个系统段,存储诸如LDT这种关键的数据结构,否则它是一个普通的代码段或数据段。 -
DPL
描述符特权级(Descriptor Privilege Level): 用于限制对这个段的存取。它表示为访问这个段二要求的CPU最小的优先级。因此,DPL设为0的段只能当CPL为0时(即在内核态)才是可访问的,而DPL设为3的段对任何CPL值都是可访问的。 -
P
Segment-Present标志:等于0表示段当前不再主存中。Linux总是把这个标志设为1,因为它从来不把整个段交换到磁盘上去。 -
AVL
可以由操作系统使用,但是被Linux忽略。 -
L
在IA-32e模式下,值1表示此代码段中的指令在64位模式下执行。值为0表示此代码段中的指令是在兼容模式下执行。如果设置了L位,则必须清除D位。不处于IA-32e模式时或对于非代码段,保留位21,并且应始终将其设置为0。 -
D/B
称为D或者B的标志,取决于是代码段还是数据段。D或B的含义在两种情况下稍微有所区别,但是如果段偏移量的地址是32位长,就基本上把它置位1,如果这个偏移量是16位长,它被清0。 -
G
粒度标志:如果该位清0,则段大小以字节为单位,否则以4096字节的倍数计。
linux0.11内核分析-段描述符
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...