注:本文档为《从0学x86操作系统》课程配套的学习文档,提供相应的辅助学习资料和答疑勘误。 有关该课程的信息,请点击这里访问:https://study.163.com/provider/1017884735/index.htm 在阅读本文档时,如有疑问和建议,欢迎在下方留言或者直接联系我。

从本章开始将会涉及到很多CPU的硬件知识,可能略为枯燥及难懂,我会尽可能简化地去讲。参考文档为《Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3 (3A, 3B, 3C & 3D): System Programming Guide》,仅关注其中的第2-9章。

系统架构

手册中第62页给出了一个处理器中核心的寄存器与配置数据结构图。这个结构图较为复杂,本课时只关心GDT。
image.png
GDT是一个配置表,里面存储了有关存储访问相关的配置信息。在进入保护模式后,所以有关内存访问操作,都需要经过GDT(本课时未涉及到LDT),GDT表中每项称为段描述符( Segment descriptors)。其具体格式如下:
image.png
(见手册第96页)

该结构看起来较为复杂,大体分为包含3部分:base addr(基地址)、limit(界限)以及一些属性值。具体属性值本小节暂不关心,后面讲解。

整个GDT表最大为64KB,而每个表项为8字节,所以表项数最大为8192个。

参考资料

  • 课程附带的intel编程文档卷3:Intel® 64 and IA-32 Architectures Software Developer’s Manual Volume 3 (3A, 3B, 3C & 3D): System Programming Guide