virtual memory in linux

view story

http://stackoverflow.com – I am debugging one issue where a same program behaves differently on different Linux boxes (all 2.6 kernels). Basically on some linux box, mmap() of 16MB always succeeds, but on other linux box the same mmap() would fail with "ENOMEM". I checked /proc//maps and saw the virtual memory map on different linux boxes are quite different. One thing is: the address range for heap: linux box1: the mmap() would return address of 31162000-31164000 linux box2: the mmap() would return address of a9a67000-a9a69000 My question is: for a particular process, how is linux virtual memory arranged? Wh (HowTos)