勵志

勵志人生知識庫

elf檔案格式

ELF(Executable and Linkable Format)檔案格式,也稱為可執行與可連結格式,是一種用於執行檔、目標代碼、共享庫和核心轉儲(core dump)的標準檔案格式。它主要用於類Unix系統,如LinuxMac OS等。ELF檔案的主要組成部分包括ELF頭(ELF header)、程式頭表(Program header table)、(Sections)和節頭表(Section header table)。這些組成部分中,只有ELF頭的位置是固定的,其他部分的位置和大小由ELF頭中的值決定。

ELF頭定義了ELF檔案的主要特性,如幻數、目標體系結構、節頭表地址偏移等。程式頭表包含了所有有效的段(segments)和它們的屬性,對於執行檔來說,它告訴載入器如何將檔案中的節接在到虛擬記憶體中。節區是ELF檔案中的數據和代碼存儲的形式,不同類型的節區包含了不同的信息,如代碼區、數據區、符號表區等。節頭表則包含對節的描述,記錄了ELF檔案中各個節的起始偏移、大小、標誌等信息。

ELF檔案格式根據檔案類型有不同的組成方式。例如,可重定向檔案的格式主要由ELF頭、節和節頭表組成,而執行檔的格式主要由ELF頭、段和程式頭表組成。這兩種檔案的主要區別在於可執行目標檔案中的某個段可能結合了很多可重定向目標檔案中的相關節。

此外,ELF檔案格式提供了兩種視圖:連結視圖和執行視圖。連結視圖在連結時使用,以節為單位,而執行視圖在執行時使用,以段為單位。這兩種視圖反映了ELF檔案在編譯連結和程式運行兩個階段的不同用途和結構。