和一个段有关的信息需要8个字节来描述,所以称为段描述符,每个段都需要一个描述符,为了存放这些描述符,需要在内存中开辟一段空间,在这段空间里,所有的描述符都是挨在一起,集中存放,这就构成了一个描述符表。
最主要的描述符表是全局描述符表(GDT),所谓全局,是该表位整个软硬件服务的,在进入保护模式前,必须定义全局描述符表。
为了跟踪全局描述表,处理器内部有一个48位的寄存器,称为全局描述符表寄存器(GDTR)。
GDTR分为两部分:
- 32位的线性地址,这部分保存的是全局描述符表在内村长的起始线性地址
- 16位的边界,这部分保存的是全局描述符表的边界,在树枝上等于表的大小-1.
一个描述符占据8字节,16位最大可访问空间是65536字节,所以共可定义8192个描述符。
理论上,全局描述符可以定义在任何位置,但由于实模式下只能访问1MB内存,而且在进入保护模式前必须定义GDT,所以GDT一般在1MB以下,当然可以进去以后重新定义。
GDT和GDTR的关系: