More information on memory handling in Linux and other operating systems can be found at the following locations:
More information about the memory layout of Linux programs can be found in Konstantin Boldyshev's document, "Startup state of a Linux/i386 ELF binary", available at http://linuxassembly.org/startup.html
A good overview of virtual memory in many different systems is available at http://cne.gmu.edu/modules/vm/
Several in-depth articles on Linux's virtual memory subsystem is available at http://www.nongnu.org/lkdp/files.html
Doug Lea has written up a description of his popular memory allocator at http://gee.cs.oswego.edu/dl/html/malloc.html
A paper on the 4.4 BSD memory allocator is available at http://docs.freebsd.org/44doc/papers/malloc.html