讀《程序員的自我修養》之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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章