連結器與載入器與執行檔格式

在Linux等系統中啟動動態連結的程式時,動態連結器(ld.so等)的功用,下列何者正確?

  1. A編譯原始碼以產生機器碼
  2. B尋找所需的共用函式庫並載入記憶體,結合符號後再讓程式開始執行
  3. C程式結束後,整理磁碟的空閒區域
查看答案與解析

正確答案:B. 尋找所需的共用函式庫並載入記憶體,結合符號後再讓程式開始執行

動態連結的執行檔中記載了要使用的動態連結器的位置,作業系統載入程式後,會先把處理交給動態連結器。動態連結器會尋找並載入所需的共用函式庫,進行重定位與符號的結合,然後將控制權移交給程式的入口。使用dlopen在執行中額外載入函式庫的處理,也是由動態連結器負責。

  • A. 編譯是編譯器的工作。
  • B. 正確。負責執行時的連結。
  • C. 與磁碟整理無關。
練習這個領域 前往領域頁面

連結器與載入器與執行檔格式的其他題目

  1. 關於ASLR(位址空間配置隨機化)的目的,下列何者正確?
  2. 將執行檔建置為PIE(位置獨立執行檔)的主要理由為下列何者?
  3. 啟動程式時(Linux的execve等),作業系統的載入器所進行的事項,下列何者正確?
  4. 關於C語言程式中作業系統最初開始執行的位址(進入點,entry point),下列何者正確?
  5. C語言的main函式以「return 3;」結束時,該值3一般會如何處理?

這個領域的比較