Linux

動態連結器是由作業系統自動呼叫還是由 ELF 文件中嵌入的程式碼自動呼叫?

  • September 6, 2019

我不確定,動態連結器/usr/bin/ld是否由作業系統自動呼叫,在載入 ELF 文件時,還是由嵌入在 ELF 文件中的程式碼呼叫?

當我用於r2調試 ELF 文件時,它會在要執行的第一條指令處停止,這應該是動態連結器程式碼,但我不知道這段程式碼是否是 ELF 文件的一部分。

核心載入動態載入器(不是/usr/bin/ld;查看靜態連結器、動態連結器、載入器和動態載入器的可執行 ELF 文件分別是什麼?)。

當您執行 ELF 二進製文件時,核心使用其特定的 ELF 二進制載入程序;對於動態連結的二進製文件,這會查找 ELF 標頭中指定的解釋器,載入該解釋器並指示它執行目標二進製文件。解釋器是動態載入器,它載入任何需要的庫,解析未定義的符號,並跳轉到程序的起始地址。(有關核心中二進制載入的詳細資訊,請參閱Linux 上存在哪些類型的執行檔? )

LWN 有一篇文章詳細介紹了程序如何執行:ELF 二進製文件

引用自:https://unix.stackexchange.com/questions/539352