如何在保护模式下更改第一个兆字节的内存布局?

How will first megabyte memory layout be changed in Protected Mode?

据我了解,当我们处于 x86 实模式时,第一个兆字节的内存布局如下所示:

跳转到保护模式后内存布局会改变吗?我知道我们可以像在实模式下一样通过相同的地址访问视频内存,但是其他区域呢?我们可以覆盖它们吗?我想我们不再需要 IVT 和引导扇区了。但我不确定其他人。

简答:

长答案:内存布局不会根据您所处的模式而改变。但是,当不处于实模式时,该区域中的大部分内存是无关紧要的给你,并且可以使用。 但是,您必须知道该区域中的大量内存可能是 IO 映射的,因此,加载您的内存是个好主意kernel >1M(2M为最佳位置)并忽略前1M内存。

一旦实现分页和页面分配,您将希望保留第一个兆字节的内存,从而不允许分配它。