Processes load at 800000 and their entry point is 800020 (to skip the
initial a.out header). Their code, data, and heap all follow. Then
staticly reserved blocks of memory begin. After this, optionally, is a
read-only mapping of the shared library followed by the private
write-able data and heap for the shared library.
Growin down from the high-end of the address space is the kernel which
maps all of physical memory high in the address space, then the
kernel, kernel data, etc. Then comes the
kernel readonly data structures and finally an unmapped page to
delineate between kernel addresses and user-addresses. At the upper
end of the user part of the address space is the user stack.