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.