hi, who can give some advice about this question? Because the young men like me don't know some history legacy. ---------- Forwarded message ---------- From: pei lin <telent998@xxxxxxxxx> Date: 2009/2/6 Subject: Re: why linux ELF base address is 0x8048000? To: Brian Raiter <breadbox@xxxxxxxxxxxxxx> 抄送: Chris Evans <teknopup@xxxxxxxxx>, linux-assembly@xxxxxxxxxxxxxxx yeah,that explains some reason. But between 0x08000000 and 0x08048000 should be some other reason for X86 architecture . <<The linker and loader>> said that "permitting most programs to use a single second-level page table." But i can not understand it very well. Lin 2009/2/5 Brian Raiter <breadbox@xxxxxxxxxxxxxx>: >> why linux ELF base address is 0x8048000? we can use ld to change >> the base address or linker script.BUT why default is 0x8048000? >> There must be some reasons or history i don't know. > > As far as I can tell, the reason is that this was the address used by > SVR4, which was the first release of Unix to use ELF executables. > > The reason that SVR4 chose that particular address is that the stack > top was located at 0x08000000 (growing downward, of course), and then > the area between 0x08000000 and 0x08048000 was reserved for libc and > possibly other system service code. > > b > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ