3

背景:在我的操作系统启动之前,我需要保留低于 0xA0000 的内存量。为此,我更改了0040:0013(或 0x413)字,这是 KiB 中可用的低内存量。

但是,Windows 和其他操作系统使用E820h/INT15h来查询内存布局,并且某些 BIOS:es 不会反映 E820h/INT15h BIOS 功能的 0x413 更改。因此,如果需要,我还必须挂钩 E820h 功能。

问题:在操作系统之前是否有另一种(更可靠的)方法来保留低内存?或任何其他改变 E820h/INT15h 结果的方法,而不是挂钩 INT15h(也许通过戳 EBDA?)

4

1 回答 1

1

我不这么认为,但如果你不做引导加载程序,你可以对操作系统进行半虚拟化。您可以查看 Xen 虚拟机管理程序。

于 2008-09-24T12:03:28.880 回答