读《程序员的自我修养》之ELF可执行文件默认起始地址

这段时间都在阅读《程序员的自我修养》,阅读到4.1.2节,顺便在公司的服务器上实验了一下,发现差别我的ELF可执行文件默认起始地址与署上描述完全不同。

以下为原书截图:


而公司服务器上面的objdump后:



从上面的信息看,服务器是64位版本的,并且推算默认起始地址应该是0x0000000000400000。《程序员的自我修养》使用的是32位版本的,这应该使我们的主要区别,但为什么会有这么大的差距呢?

经过一番查找,有人提示在《深入理解计算机系统》中有阐述。

在第九章第四节提到:



另外另一篇blog对内存管理的讲解,可以作为扩展阅读:

http://blog.csdn.net/yang_yulei/article/details/24385573


至于为什么32位和64位系统对于ELF默认起始地址的设置有这么大区别,并没有找到相关资料。希望知道的同学在下面能留言告诉我。


发布了30 篇原创文章 · 获赞 1 · 访问量 11万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章