Virtual-Memory
什麼是地址綁定?
我找到了一些關於什麼是“地址綁定”的解釋。他們說“地址綁定是將虛擬或邏輯地址映射到物理地址的操作”。
這個定義正確嗎?
我無法確定它是否正確,因為大學演講說將虛擬地址轉換為物理地址是在執行時執行的。但是,地址綁定表示綁定操作可以在編譯時、載入時或執行時實現。
這說明存在矛盾。
Quora 上的解釋在我看來相當混亂,並且混淆了許多概念。
術語“地址綁定”,在記憶體地址(例如與網路地址相反)的上下文中,來自Leon Presser 和 John R. White 1972 年關於連結器和載入器的論文(另請參見ACM 條目),其中定義如下:
將邏輯地址轉換或映射為物理地址稱為地址綁定。
快速閱讀可能會讓人覺得這是從記憶體管理的角度討論邏輯地址和物理地址,但事實並非如此。在論文中,物理地址是“資訊”在記憶體中的地址,邏輯地址是用來指代該資訊的符號。因此,地址綁定現在通常稱為符號(或指針)重定位,正如您所說,這可能發生在編譯時(例如生成靜態二進製文件時),載入時(當動態連結器解析符號時)共享庫),或在執行時(當正在執行的程序手動解析符號時,例如使用
dlopen
)。