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

问题描述

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

enter image description here

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

解决方法

简短回答:否。

长答案:内存的布局不会因您所处的模式而改变。但是,当非实模式时,该区域中的大部分内存与您无关,并且可以使用。 但是,您必须知道该区域中的很多内存可能是 IO 映射的,因此,加载内核 >1M(2M 是最佳位置)并忽略前 1M 内存。

一旦你实现了分页和页面分配,你会想要保留第一兆字节的内存,从而不允许分配它。