[問題] 關於 Position Independent Code 的概念
遇到的問題: (題意請描述清楚)
本人最近在閱讀某本書,看到動態連結這邊看了老半天,查了一堆資料
卻還是沒辦法完全參透他的意思
在介紹動態連結的時候
他一開始提出的方案為 load time relocation,也就是把重定推遲到載入時才執行
後來書上說
這樣會讓多個行程無法共用該 DSO,沒有達到節省記憶體空間的好處
因此後來出現了 PIC 的概念
這樣可以讓 .text 載入的時候不用重定,而 .data 又可以在不同行程有副本
這幾句話我看了老半天看不懂
1. 為什麼 load time relocation 會造成 DSO 無法被共用?
2. .data 裡面的 GOT,書上說在載入的時候 ld.so 會更新裡面欄位的值,
這跟多行程能否共用該 DSO,在不同行程有副本又有什麼關係?
短短幾頁就讓我無法頓悟,希望對這方面有心得的前輩可以多多幫忙一下
謝謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.250.174.228
→
10/10 15:02, , 1F
10/10 15:02, 1F
→
10/12 13:58, , 2F
10/12 13:58, 2F
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 7 篇):