天天看點

linux檔案類型elf,ELF檔案格式的三種類型

ELF檔案格式包括三種主要的類型:可執行檔案、可重定向檔案、共享庫。

1.可執行檔案(應用程式)可執行檔案包含了代碼和資料,是可以直接運作的程式。

2.可重定向檔案(*.o)可重定向檔案又稱為目标檔案,它包含了代碼和資料(這些資料是和其他重定位檔案和共享的object檔案一起連接配接時使用的)。

*.o檔案參與程式的連接配接(建立一個程式)和程式的執行(運作一個程式),它提供了一個友善有效的方法來用并行的視角看待檔案的内容,這些*.o檔案的活動可以反映出不同的需要。

Linux下,我們可以用gcc -c編譯源檔案時可将其編譯成*.o格式。

3.共享檔案(*.so)也稱為動态庫檔案,它包含了代碼和資料(這些資料是在連接配接時候被連接配接器ld和運作時動态連接配接器使用的)。動态連接配接器可能稱為ld.so.1,libc.so.1或者

ld-linux.so.1。我的CentOS6.0系統中該檔案為:/lib/ld-2.12.so

一個ELF檔案從連接配接器(Linker)的角度看,是一些節的集合;從程式加載器(Loader)的角度看,它是一些段(Segments)的集合。ELF格式的程式和共享庫具有相同的結構,隻是段的集合和節的集合上有些不同。