aks*_*aks 30 linux x86 elf memory-layout
在Ubuntu x86系统上反汇编ELF二进制文件我不禁注意到代码(.text)部分从虚拟地址0x8048000开始,所有较低的内存地址似乎都未使用.
这似乎相当浪费,所有谷歌出现都是涉及STACK_TOP的民间传说或防止空指针解除引用.后一种情况看起来可以通过使用单个页面来修复,而不是留下128MB的间隙.
所以我的问题是 - 对于为什么布局已经固定到这些值或者它只是一个随意的选择,有一个确定的答案吗?
Bas*_*ard 25
从连接器和装载机书中:
在386系统上,文本基地址为0x08048000,这允许在文本下面保持相当大的堆栈,同时仍然保持在地址0x08000000之上,允许大多数程序使用单个二级页表.(回想一下,在386上,每个二级表映射0x00400000个地址.)
归档时间:
15 年,4 月 前
查看次数:
4000 次
最近记录: