将内核重新分配到高内存

时间:2014-01-13 22:40:31

标签: assembly kernel

如何将自定义操作系统内核重新绑定到高内存中,以使地址0xABCD变为0xFFFFFF800000ABCD? (内核已经由引导加载程序从地址0x100000开始加载。)我当前的解决方案在未映射的地址上生成页面错误,由于IDT尚未初始化,因此会升级为三重错误。

1 个答案:

答案 0 :(得分:1)

不要明确移动你的内核。

相反,使用分页。首先,在低内存中设置所有内容,然后启用分页并将内核映射(不移动)为高。不涉及复制字节。