連結器與載入器與執行檔格式
關於ELF檔案中的「區段(section)」與「段(segment)」的差異,下列何者正確?
- A區段是Windows的稱呼,段是Linux的稱呼,兩者內容相同
- B區段是連結器處理的細小單位,段則是載入器載入記憶體的單位,將權限相同的區段彙整在一起
- C段只存在於磁碟上,不會載入記憶體
查看答案與解析
正確答案:B. 區段是連結器處理的細小單位,段則是載入器載入記憶體的單位,將權限相同的區段彙整在一起
ELF有兩種觀點。連結器以.text、.rodata、.data、.bss等細小的區段為單位進行結合與重定位。載入器則以程式標頭所記載的段為單位對應到記憶體,例如將.text與.rodata彙整到可讀取與執行的段,將.data與.bss彙整到可讀寫的段。依權限彙整,較容易設定以分頁為單位的保護。
- A. 兩者都是ELF的用語,但作用不同。
- B. 正確。一個是為連結而設的觀點,一個是為執行而設的觀點。
- C. 段才是載入記憶體的單位。