You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 6, 2020. It is now read-only.
Repository navigation
This repository was archived by the owner on Apr 6, 2020. It is now read-only.
In order to manage the memory, the OS should know how much it has. Extra information about reserved addresses and memory holes (maybe these are the same, I don't know yet), should also be taken into account.
An expedient option would be to get the information from the bootloader. The multiboot specification includes information on how much memory the system has.
This would make the dependency on grub/multiboot a hard one, though; but might be a good start.
I’m still using BIOS for my x86_64 OS work, but it’s a similar story as Multiboot: it’s handed to you directly (in this case by EFI firmware), no need to do a special dance with BIOS services and interrupts to get it.
Activity
steveklabnik commentedon May 24, 2017
Yup, this is absolutely something that would have to happen for #96 and #81
dato commentedon May 24, 2017
An expedient option would be to get the information from the bootloader. The multiboot specification includes information on how much memory the system has.
This would make the dependency on grub/multiboot a hard one, though; but might be a good start.
steveklabnik commentedon May 24, 2017
@dato big 👍 on that, multiboot should have all the info. I am fine with this.
steveej commentedon May 26, 2017
@dato do you by chance know how this is handled in (U)EFI systems?
dato commentedon May 27, 2017
I’m still using BIOS for my x86_64 OS work, but it’s a similar story as Multiboot: it’s handed to you directly (in this case by EFI firmware), no need to do a special dance with BIOS services and interrupts to get it.
You want, in particular, the
GetMemoryMap()service. There is example code in this excellent StackOverflow answer. For those reading along, here’s an overall description.-d