新聞中心
ELF文件是在UNIX操作系統(tǒng)中,特別是linux環(huán)境中的可執(zhí)行文件格式。ELF是Executable and Linkable Format的縮寫,有時(shí)也稱為Extensible Linking Format。

成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站的關(guān)注點(diǎn)不是能為您做些什么網(wǎng)站,而是怎么做網(wǎng)站,有沒有做好網(wǎng)站,給創(chuàng)新互聯(lián)公司一個(gè)展示的機(jī)會(huì)來(lái)證明自己,這并不會(huì)花費(fèi)您太多時(shí)間,或許會(huì)給您帶來(lái)新的靈感和驚喜。面向用戶友好,注重用戶體驗(yàn),一切以用戶為中心。
ELF文件是可移植格式,它在不同的系統(tǒng)上擁有同樣的相同結(jié)構(gòu),所以,即使是完全不同的CPU架構(gòu)、操作系統(tǒng),也可以使用ELF文件,也可以使用它編譯。ELF文件是由若干節(jié)(或叫段)組成,每個(gè)段有各自不同的用途,并且存在于特定的位置。
主要由以下幾個(gè)ELF段組成:
符號(hào)表(Symbol Table):存放程序中定義的函數(shù)入口以及程序中定義的變量等的名稱、位置和其他信息。ELK程序調(diào)試器,如GDB和DNS,使用符號(hào)表來(lái)調(diào)試程序。
節(jié)(Sections):這里存放程序的指令代碼,以及程序的數(shù)據(jù)(如全局變量)。
程序頭(Program Header):這里存放著ELF文件的信息,以及Linux下可執(zhí)行文件怎樣被操作系統(tǒng)加載到內(nèi)存中、在內(nèi)存中怎樣建立起來(lái)、在哪里開始執(zhí)行程序代碼等。
重定位表(Relocation Table):每個(gè)ELF文件都會(huì)有一個(gè)重定位表,存放著程序中的全局變量或函數(shù)的相對(duì)地址,這樣在拷貝ELF程序時(shí),可以知道哪些部分需要修改其相對(duì)地址以確保程序正確執(zhí)行。
字符串表(String Table):字符串表用于存放程序中定義的可執(zhí)行符號(hào)(如函數(shù)名、變量名等)的字符串,也就是這些符號(hào)的名字。
編譯器在編譯C/C++程序時(shí),都會(huì)將程序生成一個(gè)ELF格式的可執(zhí)行文件,此時(shí),你也可以分析ELF文件,探索Linux內(nèi)部。
通過(guò)對(duì)ELF文件的細(xì)致分析,你可以理解ELF文件的構(gòu)造細(xì)節(jié),找出Linux內(nèi)核的工作機(jī)制,可以更好的調(diào)試程序,提高編寫程序的效率。
ELF文件是Linux程序的核心,通過(guò)探索ELF,你可以有助于理解Linux內(nèi)核工作原理,進(jìn)而更加深入地把握Linux操作系統(tǒng),并有助于更好更快地編寫linux程序。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營(yíng)銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
網(wǎng)站欄目:探索Linux內(nèi)部:ELF文件(linuxelf文件)
鏈接URL:http://www.dlmjj.cn/article/cceedoe.html


咨詢
建站咨詢
