連結器與載入器與執行檔格式
將Linux等一般行程的記憶體配置,由位址小的一側依序排列,下列何者正確?
- A文字(text)→ 資料(data)→ BSS → 堆積 →(空閒)→ 堆疊
- B堆疊 → 文字 → 堆積 → 資料 → BSS
- C堆積 → 堆疊 → BSS → 資料 → 文字
查看答案與解析
正確答案:A. 文字(text)→ 資料(data)→ BSS → 堆積 →(空閒)→ 堆疊
在典型的配置中,從位址小的一側起依序排列機器碼的文字、有初始值的資料、從0開始的BSS,其上方的堆積朝位址大的方向延伸。堆疊則從位址大的一側朝小的方向延伸,兩者之間寬廣的空閒區域中會放置共用函式庫與mmap的區域。實際位址為了安全,會因ASLR而在每次執行時偏移。
- A. 正確。堆積向上延伸,堆疊向下延伸。
- B. 堆疊放在位址大的一側。
- C. 文字放在位址小的一側。