ominOS (c) 2006 Anthony Lineberry ------ As of now, the kernel is 2 stages. The initial stage is a multiboot compliant stub that GRUB loads. This first stage then enables paging and sets up all of the memory, and then loads the 2nd stage as a module into upper memory at the address 0xC0000000. This 2nd stage is the main kernel proper. kernel memory layout -------------------- 0x00000000 - 0x00400000: lower 4 megs identify mapped to physical memory 0x00400001 - 0x7fffffff: unused 0x80000000 - 0xbfffafff: user space (user heap somewhere in here) 0xbfffb000 - 0xbfffbfff: user stack 0xc0000000 - 0xc0400000: kernel space 0xc0400001 - 0xcfffffff: unused 0xd0000000 - dfffffffff: kernel heap 0xe0000000 - 0xefffafff: unused 0xefffb000 - 0xefffbfff: kernel stack 0xefffc000 - 0xffbfefff: unused 0xffbff000 - 0xffefffff: kernel DMA reserved 0xfff00000 - 0xffffffff: unused