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