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...

Reply via email to