關鍵區別–鏈接器與加載程序
計算機程序用於向計算機發出指令。它是使用特定的編程語言編寫的。C、Java等編程語言是高級編程語言,人類可以理解,但計算機無法理解。因此,使用語言翻譯將高級程序轉換為機器語言。使用高級語言編寫的程序是源代碼。轉換後,轉換後的代碼稱為對象代碼。鏈接器和加載器是用於程序執行的兩個軟件程序。本文討論了鏈接器和加載器之間的區別。鏈接器是將對象代碼與其他文件(如頭文件)鏈接起來並創建擴展名為.exe的可執行文件的軟件。加載程序是將鏈接器生成的可執行文件加載到主內存的系統軟件。這是鏈接器和加載器之間的關鍵區別。
目錄
1. 概述和主要區別
2.什麼是鏈接器
3. 什麼是裝載機
4. 鏈接器和加載程序之間的關係
5. 並排比較-鏈接器與表格形式的加載程序
6. 摘要
什麼是連接器(linker)?
計算機程序是給計算機執行某項任務的一組指令。計算機程序可以用編程語言編寫。大多數編程語言都是高級編程語言。它們很容易被程序員理解和閱讀。這些語言遵循與英語相似的語法。高級語言的一些例子是Java、C和Python。使用高級編程語言編寫的程序稱為源代碼、源文件或源程序。源代碼的擴展取決於它是用什麼語言開發的。如果源代碼是用C++編寫的,那麼文件擴展名是.CPP。如果源代碼是用Python編寫的,那麼擴展名是.py。
即使是源代碼,程序員也能理解,計算機也無法理解。因此,應該使用語言翻譯程序將源代碼轉換為機器可理解的格式。它可以是編譯器或解釋器。翻譯後的代碼稱為目標代碼。目標代碼是機器語言。它由0和1組成。計算機可以直接理解目標代碼。它有擴展名。obj。如果有一個源代碼作為Test.c,那麼它將經過編譯器並轉換成測試對象.
鏈接器是將目標代碼與附加文件(如頭文件)鏈接並創建擴展名為.exe的可執行文件的軟件。程序可能使用了內置函數。這些內置函數的功能在頭文件中。根據上面解釋的示例,目標代碼測試對象使用鏈接器添加必要的頭文件。它會創建一個名為測試.exe. 它是一個可執行文件。因此,它可以由計算機執行。
什麼是裝載機(loader)?
應該執行的程序必須放在內存中。鏈接器鏈接目標代碼和頭文件並輸出可執行文件。加載程序是將鏈接器生成的可執行文件加載到主內存的系統軟件。它將內存空間分配給主內存中的可執行模塊。因此,加載器是操作系統中負責加載程序和庫的一部分。
加載一個程序需要幾個步驟。它包括將包含程序指令的可執行文件的內容讀入內存,並執行運行可執行文件所需的準備任務。加載完成後,操作系統通過將控制權傳遞給加載的程序代碼來啟動程序。特殊的計算機系統,如嵌入式系統,通常沒有加載程序。代碼直接由ROM執行。
什麼是鏈接器與加載器的關係(the relati***hip between linker and loader)?
- 鏈接器的輸出發送到加載程序。
連接器(linker)和裝載機(loader)的區別
鏈接器與加載程序 | |
鏈接器是將目標代碼與附加文件(如頭文件)鏈接並創建擴展名為.exe的可執行文件的軟件。 | 加載程序是將鏈接器生成的可執行文件加載到主內存的系統軟件。 |
輸入 | |
鏈接器獲取語言轉換器的輸出,即目標代碼。 | 加載程序從鏈接器獲取輸出,鏈接器是可執行文件。 |
功能 | |
鏈接器鏈接目標代碼和頭文件並輸出可執行文件。 | 加載程序將從鏈接器獲取的可執行文件加載到主內存。 |
總結 - 連接器(linker) vs. 裝載機(loader)
鏈接器和加載程序是與程序執行相關的兩個軟件組件。本文討論了鏈接器和加載程序之間的區別。鏈接器是將目標代碼與附加文件(如頭文件)鏈接並創建擴展名為.exe的可執行文件的軟件。加載程序是將鏈接器生成的可執行文件加載到主內存的系統軟件。這就是鏈接器和加載程序之間的區別。