为什么GDT不被视为细分市场?

时间:2012-11-11 03:42:37

标签: intel cpu-architecture gdt

  

除了构成程序或过程执行环境的代码,数据和堆栈段之外,该体系结构还定义了两个系统段:任务状态段(TSS)和LDT。

     

GDT不被视为段,因为它不是通过段选择器和段描述符访问的。 TSS和LDT具有为它们定义的段描述符。

     

- 英特尔64和IA32架构软件手册3A,2.1.2

我对为什么 GDT不被视为细分市场感到困惑。

任何人都能详细解释一下吗?

1 个答案:

答案 0 :(得分:4)

GDT是第一个查找所有内容的点,无法通过选择器访问,因为这会给你带来鸡蛋和鸡蛋的情况。

GDT本身具有各种TSS和LDT内存块的描述符,因此 被认为是段,可通过段选择器访问。此外,各个LDT具有其他存储区域的选择器,因此这些区域也是段。

但是,当GDT是选择过程的第一个进入点时,您只需要问自己在哪个表中查找描述符以找到GDT?

实际上,当您加载GDT的地址(使用LGDT指令)时,它是您正在使用的线性地址而不是选择器。来自x86开发人员指南:

  

LGDT和LIDT指令仅用于操作系统软件;它们不用于应用程序。它们是直接加载线性地址(即不是段相对地址)和受保护模式下的限制的唯一指令。它们通常在实地址模式下执行,以便在切换到保护模式之前允许处理器初始化。

这就是他们说GDT不被视为细分市场的原因。