標準檔案格式
ELF(Executable and Linkable Format)是一種用於二進制檔案、執行檔、目標代碼、共享庫和核心轉儲的標準檔案格式。它最初由UNIX系統實驗室(UNIX System Laboratories)作為應用程式二進制接口(Application Binary Interface, ABI)的一部分開發和發布。ELF格式因其可擴展性與靈活性,也被套用在其他處理器和計算機系統架構的作業系統上。
ELF檔案主要由以下四部分組成:
ELF檔案頭(ELF header),描述檔案的主要特性,如類型、CPU架構、入口地址、現有部分的大小和偏移等。
程式頭表(Program header table),用於描述進程如何映射到記憶體中的信息。
節(Section)或段,包含程式的代碼和數據。
節頭表(Section header table)或段頭表,提供節或段的組織信息。
ELF檔案格式支持多種不同的檔案類型,包括:
可重定位檔案(一般生成的目標檔案".o",用於與其他目標檔案連結生成執行檔或動態程式庫)。
共享目標檔案(動態程式庫檔案,即".so"檔案)。
執行檔(經過連結的,可以執行的程式檔案)。
在Linux和其他類Unix系統中,ELF格式已經成為執行檔和共享庫的標準格式。