什麼是ELF(可執行與可連結格式)

Executable and Linkable Format 的縮寫。在 Linux 等 UNIX 系列作業系統與嵌入式裝置中,用於目的檔、可執行檔與共享函式庫的檔案格式。

日文名稱: ELF

「ELF(可執行與可連結格式)」出現在1領域的3道練習題中(連結器與載入器與執行檔格式等)。

這個名詞所屬的領域: 連結器與載入器與執行檔格式

練習ELF(可執行與可連結格式)的題目

關於Linux等系統常用的ELF格式檔案,下列何者正確?

  1. A是執行檔專用的格式,不能用於目的檔
  2. B目的檔、執行檔、共用函式庫都使用它,由標頭與區段(section)等所構成
  3. C是用來儲存影像的格式
查看答案與解析

正確答案:B. 目的檔、執行檔、共用函式庫都使用它,由標頭與區段(section)等所構成

ELF(Executable and Linkable Format)是Linux以及許多UNIX系作業系統與嵌入式裝置所使用的程式檔案格式。開頭的ELF標頭記載了目標CPU、是否為64位元、開始執行的位址等,其後接著.text、.data等區段,以及表示載入器要載入記憶體之單位的程式標頭(program header)。Windows使用PE格式,macOS使用Mach-O格式。

關於ELF檔案中的「區段(section)」與「段(segment)」的差異,下列何者正確?

  1. A區段是Windows的稱呼,段是Linux的稱呼,兩者內容相同
  2. B區段是連結器處理的細小單位,段則是載入器載入記憶體的單位,將權限相同的區段彙整在一起
  3. C段只存在於磁碟上,不會載入記憶體
查看答案與解析

正確答案:B. 區段是連結器處理的細小單位,段則是載入器載入記憶體的單位,將權限相同的區段彙整在一起

ELF有兩種觀點。連結器以.text、.rodata、.data、.bss等細小的區段為單位進行結合與重定位。載入器則以程式標頭所記載的段為單位對應到記憶體,例如將.text與.rodata彙整到可讀取與執行的段,將.data與.bss彙整到可讀寫的段。依權限彙整,較容易設定以分頁為單位的保護。

解析中的「ELF(可執行與可連結格式)」

出現「ELF(可執行與可連結格式)」的題目(3題)

  1. 關於Linux等系統常用的ELF格式檔案,下列何者正確?
  2. 關於ELF檔案中的「區段(section)」與「段(segment)」的差異,下列何者正確?
  3. 主要作業系統所使用的執行檔格式組合,下列何者正確?

相關名詞

載入器(Loader) 重定位(Relocation) 連結器(Linker) 動態連結(Dynamic linking) 目的檔(Object file) 共享函式庫(Shared library) 名稱修飾(Name mangling) 位置無關程式碼(Position-independent code) 弱符號(Weak symbol) 記憶體碎裂(Memory fragmentation)

前往名詞解釋列表