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

將Linux等一般行程的記憶體配置,由位址小的一側依序排列,下列何者正確?

  1. A文字(text)→ 資料(data)→ BSS → 堆積 →(空閒)→ 堆疊
  2. B堆疊 → 文字 → 堆積 → 資料 → BSS
  3. C堆積 → 堆疊 → BSS → 資料 → 文字
查看答案與解析

正確答案:A. 文字(text)→ 資料(data)→ BSS → 堆積 →(空閒)→ 堆疊

在典型的配置中,從位址小的一側起依序排列機器碼的文字、有初始值的資料、從0開始的BSS,其上方的堆積朝位址大的方向延伸。堆疊則從位址大的一側朝小的方向延伸,兩者之間寬廣的空閒區域中會放置共用函式庫與mmap的區域。實際位址為了安全,會因ASLR而在每次執行時偏移。

  • A. 正確。堆積向上延伸,堆疊向下延伸。
  • B. 堆疊放在位址大的一側。
  • C. 文字放在位址小的一側。
練習這個領域 前往領域頁面

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

  1. 將行程的堆積與堆疊配置成中間隔著寬廣的空閒區域、朝相反方向延伸,其優點為下列何者?
  2. 關於靜態連結,下列說明何者正確?
  3. 關於動態連結(共用函式庫)的優點,下列何者正確?
  4. 將使用動態連結的程式複製到另一部電腦上執行,卻無法啟動。最可能的原因為下列何者?
  5. 與靜態函式庫(.a檔)一起連結時,連結器會嵌入執行檔的是下列何者?

這個領域的比較