Hi All,
All Linux processes seem to be starting with the virtual address 0x8048000. As i see, this value has been hard coded in the linker script. I expected the stack/heap to be lying in the virtual address range 0 - 0x08048000. However on printing the address of a local variable, I found it to be lying towards the end of user space addresses 0xb0000000 - 0xc0000000. Hence the stack is expected to be lying at the end of the user address space.
The heap also extends from where the bss ends.
Dynamic libraries ld-linux.so and libc.so also start from 0x40000000 onwards.
In that case, what is it that resides at addresses 0 - 0x8048000. The first page starting at 0x0 can be marked empty to prohibit usage of 0x0 as a usable address, but what about other addresses in this range?
Thanks and Regards,
Shyamal
--
Linux - because life is too short for reboots...