后台:我需要在操作系统启动之前保留低于0xA0000的内存量。要做到这一点,我更改了 0040:0013 (或0x413)字,这是低的数量记忆在KiB中可用。

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

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

有帮助吗?

解决方案

我不这么认为,但如果你没有做引导加载程序,你可以对os进行半虚拟化。您可以查看Xen hypervisor。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top