How to reserve low memory (pre OS)?

Background: I need to reserve memory below 0xA0000 before starting my operating system. To do this, I change the 0040: 0013 (or 0x413) word, which is the amount of low memory available in KiB.

However, Windows and other operating systems use the E820h / INT15h to request a memory layout and some BIOS: es does not reflect the 0x413 changes to the E820h / INT15h BIOS function. Therefore, I must also connect the E820h function, if necessary.

Question: Is there another (more reliable) way to reserve low memory before the OS? Or any other way to change the results of the E820h / INT15h, other than connecting INT15h (choosing EBDA, maybe?)

+3
source share
1 answer

I don’t think so, but if you are not running the loader, you can para-virtualize os. You can look at the Xen hypervisor for this.

+1
source

Source: https://habr.com/ru/post/1697450/


All Articles