2008-09-24 13 views
3

Hintergrund: Ich muss eine Speichergröße unter 0xA0000 reservieren, bevor mein Betriebssystem startet. Um dies zu tun, ändere ich das 0040:0013 (oder 0x413) Wort, das ist die Menge von wenig verfügbarem Speicher in KiB.Wie reserviere ich wenig Arbeitsspeicher (vor OS)?

Allerdings verwenden Windows und andere Betriebssysteme E820h/INT15h, um das Speicherlayout und einige BIOS abzufragen: Es spiegelt nicht 0x413 Änderungen an der E820h/INT15h BIOS-Funktion wider. Daher muss ich bei Bedarf auch die E820h-Funktion haken.

Frage: Gibt es eine andere (zuverlässigere) Möglichkeit, wenig Speicher vor dem Betriebssystem zu reservieren? Oder eine andere Möglichkeit, die E820h/INT15h-Ergebnisse zu ändern, als das INT15h zu hooken (vielleicht durch EBDA?)

Antwort

1

Ich glaube nicht, aber wenn Sie keinen Bootloader machen, könnten Sie das Betriebssystem para-virtualisieren. Sie könnten Xen-Hypervisor dafür suchen.

+0

Schöne Idee, leider ist Xen keine Option für mich –