Table of Contents

Initial memory map

The standard PC has the following memory map:

Addresses Name Description
0x000000-0x09FFFF Conventional memory RAM, which can be used by user
0x0A0000-0x0BFFFF Video memory RAM, used by video adapter
0x0C0000-0x0CFFFF Adapter's ROM ROM, used by different adapters
0x0D0000-0x0DFFFF Page Frame RAM used to map Expanded memory
0x0E0000-0x0FFFFF BIOS PC BIOS ROM

Conventional memory mapped as:

Addresses Name Description
0x000000-0x0003FF Interrupt Vectors This memory used to control Inerrupts
0x000400-0x0004FF BIOS Data Area Used by ROM BIOS

After BIOS POST

Addresses Name Description
0x000000-0x0003FF Interrupt Vectors This memory used to control Inerrupts
0x000400-0x0004FF BIOS Data Area Used by ROM BIOS
0x000500-0x007BFF Free Free, unused memory
0x007C00-0x007DFF MBR
0x007E00-0x09FFFF Free Conventional memoryRAM, which can be used by user
0x0A0000-0x0BFFFF Video memory RAM, used by video adapter
0x0C0000-0x0CFFFF Adapter's ROM ROM, used by different adapters
0x0D0000-0x0DFFFF Page Frame RAM used to map Expanded memory
0x0E0000-0x0FFFFF BIOS PC BIOS ROM

After MBR

This information correct for our MBR

Addresses Name Description
0x000000-0x0003FF Interrupt Vectors This memory used to control Inerrupts
0x000400-0x0004FF BIOS Data Area Used by ROM BIOS
0x000500-0x0005FF Free Free, unused memory
0x000600-0x0007FF MBR Master Boot Record
0x000800-0x007BFF Free Free, unused memory
0x007C00-0x007DFF Boot record Boot Record loaded from boot sector of active partition
0x007E00-0x007FFF MBR Work area This area was used as MBR work area
0x008000-0x09FFFF Free Conventional memoryRAM, which can be used by user
0x0A0000-0x0BFFFF Video memory RAM, used by video adapter
0x0C0000-0x0CFFFF Adapter's ROM ROM, used by different adapters
0x0D0000-0x0DFFFF Page Frame RAM used to map Expanded memory
0x0E0000-0x0FFFFF BIOS PC BIOS ROM

After boot record

This information correct for our bootsector

Addresses Name Description
0x000000-0x0003FF Interrupt Vectors This memory used to control Inerrupts
0x000400-0x0004FF BIOS Data Area Used by ROM BIOS
0x000500-0x0005FF Free Free, unused memory
0x000600-0x0007FF MBR Master Boot Record
0x000800-0x007BFF Free Free, unused memory
0x007C00-0x007DFF Boot record Boot Record loaded from boot sector of active partition
0x007E00-0x007FFF Boot record Work area This area was used as Boot Record work area
0x008000-(MuFSDStart-1) Free Free, unused memory
MuFSDStart-MuFSDEnd MicroFSD MicroFSD/BlackBox code
(MuFSDEnd+1)-0x09FFFF Free Conventional memory RAM, which can be used by user
0x0A0000-0x0BFFFF Video memory RAM, used by video adapter
0x0C0000-0x0CFFFF Adapter ROMs ROMs, used by different adapters
0x0D0000-0x0DFFFF Page Frame RAM used to map Expanded memory
0x0E0000-0x0FFFFF BIOS PC BIOS ROM

MuFSDStart=0x008000 or 0x090000. Now we use 0x090000 as LILO does but have a plan to use 0x008000 for more compact memory reuse and less possibility of overlapping.

MuFSDEnd is (0x008000+MicroFSD_file_length-1)

After MicroFSD/BlackBox

Memory map after MicroFSD/BlackBox work known via MemoryMap structure.

After FreeLDR

Memory map after FreeLDR work known via Multiboot Information block.

After L4Ka::Kickstart

Memory map after L4Ka:Kickstart work known to microkernel via Kernel Interface Page. Other tasks has access to memory via sigma0 server. Strating from this point all memory operation controlled by L4 microkernel.