I'm writing a little OS, and currently I'm facing the Memory Management challenge. I've understood everything about how paging works, and etc, but I can't seem to get which addresses that are free mapable memory, and what's not (BIOS ROM (horribly if I try writing to that), PCI memory etc...).
In simple words, what can I use as free memory, and how do I determine how much allocateable memory a machine has?
Help is appreciated!
Available memory, taken memory, etc... How to determine?
Re:Available memory, taken memory, etc... How to determine?
This gets discussed every fortnight, and is in the FAQ.
Investigate int 15h, e820h/e801h/88h.
Investigate int 15h, e820h/e801h/88h.
Re:Available memory, taken memory, etc... How to determine?
...or, if you're using GRUB, check the Multiboot specification (GRUB simplifies your life by calling those BIOS INTs for you).