草庐IT

x8048000

全部标签

linux - 为什么 Linux 二进制文件的虚拟内存地址从 0x8048000 开始?

在Ubuntux86系统上反汇编ELF二进制文件我不禁注意到代码(.text)部分从虚拟地址0x8048000开始,并且所有较低的内存地址似乎都未使用。这似乎相当浪费,所有谷歌出现的都是folkloreinvolvingSTACK_TOP或防止空指针取消引用。后一种情况看起来可以通过使用单个页面而不是留下128MB的间隙来修复。所以我的问题是——对于为什么布局被固定为这些值,或者它只是一个任意选择,是否有明确的答案? 最佳答案 来自Linkersandloaders书:On386systems,thetextbaseaddressi