Why do virtual memory addresses for linux binaries start at 0x8048000?

Posted by muteW on Stack Overflow See other posts from Stack Overflow or by muteW
Published on 2010-06-03T13:35:03Z Indexed on 2010/06/03 13:44 UTC
Read the original article Hit count: 187

Filed under:
|
|
|

Disassembling an ELF binary on a Ubuntu x86 system I couldn't help but notice that the code(.text) section starts from the virtual address 0x8048000 and all lower memory addresses seem to be unused.

This seems to be rather wasteful and all Google turns up is either folklore involving STACK_TOP or protection against null-pointer dereferences. The latter case looks like it can be fixed by using a single page instead of leaving a 128MB gap.

So my question is this - is there a definitive answer to why the layout has been fixed to these values or is it just an arbitrary choice?

© Stack Overflow or respective owner

Related posts about linux

Related posts about x86