Physical Memory Map design Design Note

I just finished the OSIX Physical Memory Map document. In this document, the major static memory factors are described and the exact locations of them are specified.

I found that it is really hard to find a safe place for data in the x86 systems because there is no standard for this. It completely varies on what machine you have. I hope the x86 systems get rid of the traditional BIOS structures and move toward the new EFI base systems.

Basically, while designing,  I assumed that the old features do not exist any more or they are disabled by the BIOS. For example, I ignored the ISA hole at 15-16 MiB and assumed it as a free space. In my design, the area is used for the page tables or the physical page allocation table (varies on the physical memory size).

I have seen a document that tells that some old computers (that have the ISA buses with it) have a feature to disable or enable the ISA memory holes. In that case, since most people do not use it any more, they can just disable it to boot the OSIX.

The most important thing in here is that no x86-64 supported motherboards come with the ISA buses, remember that the OSIX is an x86-64 operating system. In other words, the OSIX does not even have a chance to meet the ISA buses and its annoying memory holes. Therefore, I excluded the the ISA memory hole from the consideration list.

 

As I mentioned earlier, the x86 PCs basically have no standards that specify how the memory space is organised (of course, there is a 'standard' that is commonly accepted by the PC designers, but it is not actually a standard.). Due to this reason, the BIOS itself specifies the machine's memory maps and this largely depends on what system you have.

In the Boot Procedure document, I specified that the OSIX implements the Multiboot Specifiation and this means that the GRUB or any multiboot specification-compatible boot loaders will provide a memory map for the kernel (which will indirectly be derived from the BIOS). The Physical Page Manager will automatically adjust the current memory map information of the Physical Page Allocation Table using the memory map information passed from the boot loader.

Therefore, as long as the boot loader-provided memory map information is right, the OS will run without any problems (only except the ISA memory holes which the OSIX kernel will not see in its life.).

Leave Comments


profileNew Open Source Base System 

Recent Post

Recent Comment

Recent Trackback

Tag