主要區別
連結器和載入程式的區別在於,連結器生成源程式的可執行模組,而載入程式將可執行模組載入到主記憶體中。
聯結器(linker) vs. 裝載機(loader)
有一些實用程式在任何程式的執行中起主要作用;有兩種型別的實用程式,即連結器和載入程式。程式的任何原始碼都必須經過編譯器、彙編程式、連結器、裝入器,這是任何程式執行的順序。連結器接收匯程式設計序生成的目的碼,並將它們組合起來生成可執行模組。另一方面,Loader將可執行模組載入到主記憶體以執行。必須執行的程式存在於主存中。載入程式,載入作業系統中的可執行檔案。載入器將記憶體空間分配給主記憶體中的可執行模組。載入程式有三種類型:絕對載入程式、可重定位載入程式和動態執行時載入程式。這三種裝載機有不同的裝載方式,分別是絕對裝載法、浮動裝載法和動態執行時裝載法
彙編程式和編譯器不是同一個程序,但它們所做的工作是相同的,即生成源程式的目的碼並將其交給連結器。連結器的主要過程是在完成連結器的這項工作後,獲取目的碼並生成程式的可執行程式碼,並將程式碼分配給載入程式。在高階語言中有一些內建庫和標頭檔案。有一些庫函式是在內建庫中定義的。絕對載入器將程式的可執行檔案載入到相同的主記憶體位置。在絕對載入器中,程式設計師必須知道分配。重新定位載入程式編譯或彙編實際的主記憶體地址。動態執行時載入器,執行指令時生成絕對記憶體程式。函式透過連結器連結到庫函式。如果找不到特定函式的庫函式,則會通知編譯器。當有一個大程式時,它被分成更小的程式,這些程式稱為模組。物件模組是在編譯或組裝這些模組時生成的。連結器必須將整個程式組合在一起。有兩種型別的連結器一種是連結編輯器,它生成重新定位的可執行模組,另一種是動態連結器,連結外部模組,直到生成載入模組。
比較圖
什麼是聯結器(linker)?
彙編程式和編譯器不是同一個程序,但它們所做的工作是相同的,即生成源程式的目的碼並將其交給連結器。連結器的主要過程是在完成連結器的這項工作後,獲取目的碼並生成程式的可執行程式碼,並將程式碼分配給載入程式。在高階語言中有一些內建庫和標頭檔案。有一些庫函式是在內建庫中定義的。這些函式透過連結器連結到庫函式。如果找不到特定函式的庫函式,則會通知編譯器。當有一個大程式時,它被分成更小的程式,這些程式稱為模組。物件模組是在編譯或組裝這些模組時生成的。連結器必須將整個程式組合在一起。有兩種型別的連結器一種是連結編輯器,它生成重新定位的可執行模組,另一種是動態連結器,連結外部模組,直到生成載入模組。
什麼是裝載機(loader)?
必須執行的程式存在於主存中。載入程式,載入作業系統中的可執行檔案。載入器將記憶體空間分配給主記憶體中的可執行模組。載入程式有三種類型:絕對載入程式、可重定位載入程式和動態執行時載入程式。這三種載入方式有絕對載入方式、浮動載入方式和動態執行時載入方式。絕對裝入器將程式的可執行檔案載入到相同的主記憶體位置。在絕對載入器中,程式設計師必須知道分配。重新定位載入程式編譯或彙編實際的主記憶體地址。動態執行時載入器,執行指令時生成絕對記憶體程式。
主要區別
- 連結器生成源程式的可執行模組,而載入程式將可執行模組載入到主記憶體中。
- 連結器接收匯程式設計序輸入的目的碼,而載入程式獲取可執行模組必須輸入的程式碼
- 連結器組合了所有的物件模組,而Loader將地址分配給一個可執行檔案。
- 連結器的型別有連結編輯器和動態編輯器,而載入程式的型別是絕對載入程式、動態執行時載入程式和重新定位載入程式。