segmentation和保护模式(一)
上文讲到了segment descriptor,把这些descriptors放在一起(在内存里连续分布),就构成了GDT(Global Descriptor Table),所以GDT也可以被称为段(描述符)表。
页表的首地址是存储在CR3寄存器中的,类似的,GDT的首地址存在GDTR寄存器中。页表的查找是通过使用虚拟地址作为index,而GDT的查找使用的是segment selector。
要找到某个page中的一个byte,得先通过虚拟地址的前面20位(以32位系统2级页表,4KB的page为例),查找页表得到物理页面号,再通过虚拟地址的后12位作为偏移(offset),在物理页面中找到对应的byte。
类似的,要找到某个segment的一个byte,得先通过segment selector,查找GDT得到s