Memory
.so 文件是否會整體載入到記憶體中?
當程序導致 .so 文件載入到記憶體中時,是作為一個整體載入,還是只載入必要的“塊”?
不會。首先打開 .so 文件,然後
mmap()
創建保存整個文件內容所需的虛擬地址空間。但是,只有當某些東西試圖訪問空間中的特定地址時,訪問才會導致頁面錯誤,並且核心將從文件中讀取與頁面偏移量相對應的(4k)塊到實際記憶體中。當它在實際記憶體中時,將重新啟動訪問。這是請求分頁。