ELF檔案的鏈結和裝載

2022-09-05 05:18:10 字數 353 閱讀 7416

elf的全稱是可執行可鏈結的格式

符號表的symtab,對應的字串可以在strtab找到

重要的頭有3個elf頭(首部的固定位元組長度), 程式表頭(program table header)一般緊鄰elf頭後面,節表頭(section header table)

一般對於可執行檔案僅僅借助程式表頭就能想相關的段載入正確的位址

節頭表由於索引各個不同的節,對於鏈結過程中,我們需要將各個編譯的單元的不同的節merge起來,同時需要解析出一些變數和符號的位址(計算和安排符號在記憶體中的位址並不是容易的事,這是需要linker去做的)

elf檔案格式:

elf header:

loader實現:

ELF檔案和BIN檔案

檔案的內容 1.bin檔案是 raw binary 檔案,這種檔案只包含機器碼。2.elf檔案除了機器碼外,還包含其它額外的資訊,如段的載入位址,執行位址,重定位表,符號表等。所以elf檔案的體積比對應的bin檔案要大。檔案的執行 1.執行raw binary很簡單,只需要將程式載入到其起始位址,就...

ELF檔案和BIN檔案

檔案的內容 1.bin檔案是 raw binary 檔案,這種檔案只包含機器碼。2.elf檔案除了機器碼外,還包含其它額外的資訊,如段的載入位址,執行位址,重定位表,符號表等。所以elf檔案的體積比對應的bin檔案要大。檔案的執行 1.執行raw binary很簡單,只需要將程式載入到其起始位址,就...

ELF檔案和BIN檔案

檔案的內容 1.bin檔案是 raw binary 檔案,這種檔案只包含機器碼。2.elf檔案除了機器碼外,還包含其它額外的資訊,如段的載入位址,執行位址,重定位表,符號表等。所以elf檔案的體積比對應的bin檔案要大。檔案的執行 1.執行raw binary很簡單,只需要將程式載入到其起始位址,就...