Address space organization

Notes:

This is a diagram of the address space organization of a process inside UML. The kernel needs to allocate some areas within the process address space for its own use because it doesn't have a separate area of address space of its own like a native kernel does. The process text and shared library area are in the usual places. This is required because of the way that they are linked. The process stack is a little lower than usual because the kernel's own process stack is occupying the top of the address space.
The kernel executable loads in the area starting at 0x10000000. It allocates an area starting at 0x50000000 to use for its physical memory and kernel virtual areas.