



GDT和IDT原本是放在SU数据段中的,但我们这时要把它移到0x1e000。为什么要移动?其实不移动也是可以的,移动到0x1e000,我想应该是为了后面定位。有些地址是固定设置的,如物理内存描述符表在0x70000。一般移动后的新地址都是在页面边界上,我想这一点在设计上是比较重要的。至于是否真需要在页面边界,取决于设计者的考虑,Windows内核使用的重要地址,基本都在页面边界上。
GDT(global descriptor table)是一个由段描述符及其他描述符构成的表,而IDT(interrupt descriptor table)是一个中断和异常描述符的表,这两个表的存放位置是紧连着的,在SU数据段中已设置好。GDT属于保护模式范畴,我们将在下一节中做具体介绍;IDT属于中断和异常,将在第3章进行介绍。下面我们先把注意力集中到Relocatex86Structures函数的主要任务上,即把存在SU数据段的GDT和IDT移到物理地址0x1e000。
   尽管我们把GDT&IDT移到了新地址0x1e000,但是我们并不使用这个地址上的GDT&IDT,真正加载的还是原来在SU数据段中的GDT&IDT,不过,它们不在页面的边界上。