上篇說了可執行文件的靜態連接,此次談談動態連接的一些要點。程序員
動態連接基本有2種裝載方式:進程
由於有了頁映射,空間利用率提升了很多,同時可執行文件的裝載過程也是緊密地依靠着頁映射。下圖表示了可執行文件的裝載過程。編譯
在頁映射帶來便利的同時,也帶來了許多問題,頁映射的方便使得動態連接和靜態連接有很大的不一樣。其中,動態連接擁有幾個獨有的技巧:變量
針對這些動態連接這些特色,動態連接器須要一些特定的操做,好比在最開始時他不能依賴任何共享庫,其次它也不能引用任何全局/靜態變量,而且此類變量的重定位工做還須要動態連接器完成。下圖粗略地表示出動態連接的過程:技巧
在動態連接中,Windows和Linux有特殊的不一樣點,尤爲在《程序員的自我修養》中有過說起,在此強調一下,以理清其中的思路。引用