上两篇文章,【从头开始写操作系统系列】实现一个-GDT(1)、【从头开始写操作系统系列】实现一个-GDT(2),主要介绍了段描述符结构以及实现和选择子结构。这篇文章,我们结合之前所述,对 GDT 做一个总结。
全局描述符表(GDT)
全局描述符表是在保护模式下才用到的结构。在整个系统中,全局描述符表只有一张,可以放在内存的任何位置,但是CPU必须知道它的入口地址,也就是其基地址(Base),Intel 处理器的设计者专门设计了一个寄存器用于存放该地址,叫GDTR。程序员将 GDT 设置于内存的某个位置之后,通过 lgdt 指令将其入口地址放于 GDTR 中,之后,CPU 会根据该寄存器的值来访问 GDT。
- GDTR 结构如下图: