ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด

สารบัญ:

ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด
ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด

วีดีโอ: ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด

วีดีโอ: ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด
วีดีโอ: ไขข้อสงสัย ความแตกต่างระหว่าง HDD, SSD และ M.2 | iHAVECPU 2024, กรกฎาคม
Anonim

ความแตกต่างที่สำคัญ – ตัวเชื่อมโยง vs ตัวโหลด

โปรแกรมคอมพิวเตอร์ใช้เพื่อให้คำแนะนำกับคอมพิวเตอร์ มันเขียนโดยใช้ภาษาโปรแกรมเฉพาะ ภาษาการเขียนโปรแกรมเช่น C, Java เป็นภาษาโปรแกรมระดับสูงและมนุษย์สามารถเข้าใจได้ แต่ไม่ใช่คอมพิวเตอร์ ดังนั้นโปรแกรมระดับสูงจึงถูกแปลงเป็นภาษาเครื่องโดยใช้ตัวแปลภาษา โปรแกรมที่เขียนด้วยภาษาระดับสูงคือซอร์สโค้ด หลังจากแปลงแล้ว โค้ดที่แปลแล้วจะเรียกว่าโค้ดอ็อบเจ็กต์ ตัวเชื่อมโยงและตัวโหลดเป็นโปรแกรมซอฟต์แวร์สองโปรแกรมที่ใช้สำหรับการทำงานของโปรแกรม บทความนี้กล่าวถึงความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลดLinker เป็นซอฟต์แวร์ที่เชื่อมโยงโค้ดอ็อบเจ็กต์กับไฟล์เพิ่มเติม เช่น ไฟล์ส่วนหัว และสร้างไฟล์ปฏิบัติการที่มีนามสกุล.exe ตัวโหลดคือซอฟต์แวร์ระบบที่โหลดไฟล์เรียกทำงานที่สร้างโดยตัวเชื่อมโยงไปยังหน่วยความจำหลัก นั่นคือข้อแตกต่างที่สำคัญระหว่าง Linker และ Loader

ลิงเกอร์คืออะไร

โปรแกรมคอมพิวเตอร์คือชุดคำสั่งที่มอบให้กับคอมพิวเตอร์เพื่อทำงานบางอย่าง โปรแกรมคอมพิวเตอร์สามารถเขียนได้โดยใช้ภาษาโปรแกรม ภาษาโปรแกรมส่วนใหญ่เป็นโปรแกรมระดับสูง โปรแกรมเมอร์สามารถเข้าใจและอ่านได้ง่าย ภาษาเหล่านั้นเป็นไปตามไวยากรณ์ที่คล้ายกับภาษาอังกฤษ ตัวอย่างภาษาระดับสูง ได้แก่ Java, C และ Python โปรแกรมที่เขียนโดยใช้ภาษาโปรแกรมระดับสูงเรียกว่าซอร์สโค้ด ซอร์สไฟล์ หรือโปรแกรมต้นทาง ส่วนขยายของซอร์สโค้ดขึ้นอยู่กับภาษาที่พัฒนาขึ้นด้วย หากซอร์สโค้ดเขียนด้วย C ++ นามสกุลไฟล์จะเป็น.ซีพีพี หากซอร์สโค้ดเขียนด้วย Python ส่วนขยายจะเป็น.py.

โปรแกรมเมอร์สามารถเข้าใจซอร์สโค้ดได้ คอมพิวเตอร์ไม่สามารถเข้าใจได้ ดังนั้น ซอร์สโค้ดควรถูกแปลงเป็นรูปแบบที่เครื่องเข้าใจได้โดยใช้ตัวแปลภาษา อาจเป็นคอมไพเลอร์หรือล่ามก็ได้ รหัสที่แปลแล้วเรียกว่ารหัสวัตถุ รหัสวัตถุเป็นภาษาเครื่อง ประกอบด้วยศูนย์และครั้งเดียว คอมพิวเตอร์สามารถเข้าใจรหัสวัตถุได้โดยตรง มันมีนามสกุล.obj หากมีซอร์สโค้ดเป็น Test.c มันจะผ่านคอมไพเลอร์และโค้ดที่แปลงจะกลายเป็น Test.obj.

Linker เป็นซอฟต์แวร์ที่เชื่อมโยงโค้ดอ็อบเจ็กต์กับไฟล์เพิ่มเติม เช่น ไฟล์ส่วนหัว และสร้างไฟล์ปฏิบัติการที่มีนามสกุล.exe โปรแกรมอาจใช้ฟังก์ชันในตัว ฟังก์ชันสำหรับฟังก์ชันในตัวเหล่านั้นอยู่ในไฟล์ส่วนหัว ตามตัวอย่างที่อธิบายข้างต้น รหัสวัตถุซึ่งก็คือการทดสอบobj ถูกเพิ่มด้วยไฟล์ส่วนหัวที่จำเป็นโดยใช้ Linker มันสร้างไฟล์ใหม่ที่เรียกว่า Test.exe มันเป็นไฟล์ปฏิบัติการ ดังนั้นจึงสามารถเรียกใช้งานได้จากคอมพิวเตอร์

ตัวโหลดคืออะไร

โปรแกรมที่ควรรันต้องอยู่ในหน่วยความจำ ตัวเชื่อมโยงเชื่อมโยงรหัสอ็อบเจ็กต์และไฟล์ส่วนหัวและส่งออกไฟล์เรียกทำงาน ตัวโหลดคือซอฟต์แวร์ระบบที่โหลดไฟล์เรียกทำงานที่สร้างโดยตัวเชื่อมโยงไปยังหน่วยความจำหลัก มันจัดสรรพื้นที่หน่วยความจำให้กับโมดูลปฏิบัติการในหน่วยความจำหลัก ดังนั้นตัวโหลดจึงเป็นส่วนหนึ่งของระบบปฏิบัติการที่รับผิดชอบในการโหลดโปรแกรมและไลบรารี

ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด
ความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด

รูปที่ 01: ลำดับที่ซอร์สโค้ดโหลดไปยังหน่วยความจำ

การโหลดโปรแกรมมีหลายขั้นตอน มันเกี่ยวข้องกับการอ่านเนื้อหาของไฟล์ปฏิบัติการที่มีคำสั่งโปรแกรมลงในหน่วยความจำและเพื่อดำเนินการเตรียมงานที่จำเป็นเพื่อเรียกใช้ไฟล์ปฏิบัติการเมื่อการโหลดเสร็จสิ้น ระบบปฏิบัติการจะเริ่มต้นโปรแกรมโดยส่งการควบคุมไปยังโค้ดโปรแกรมที่โหลด ระบบคอมพิวเตอร์พิเศษเช่นระบบสมองกลฝังตัวโดยทั่วไปไม่มีตัวโหลด รหัสดำเนินการโดยตรงโดย ROM

ความสัมพันธ์ระหว่างตัวเชื่อมโยงและตัวโหลดคืออะไร

ผลลัพธ์ของตัวเชื่อมโยงไปที่ตัวโหลด

ตัวเชื่อมโยงและตัวโหลดต่างกันอย่างไร

ตัวเชื่อมกับตัวโหลด

Linker เป็นซอฟต์แวร์ที่เชื่อมโยงรหัสวัตถุกับไฟล์เพิ่มเติม เช่น ไฟล์ส่วนหัว และสร้างไฟล์ปฏิบัติการที่มีนามสกุล.exe ตัวโหลดคือซอฟต์แวร์ระบบที่โหลดไฟล์เรียกทำงานที่สร้างโดยตัวเชื่อมโยงไปยังหน่วยความจำหลัก
อินพุต
ตัวเชื่อมโยงใช้เอาต์พุตของตัวแปลภาษา ซึ่งเป็นรหัสวัตถุ ตัวโหลดใช้เอาต์พุตจากตัวเชื่อมโยง ซึ่งเป็นไฟล์ปฏิบัติการ
ฟังก์ชั่น
ตัวเชื่อมโยงเชื่อมโยงรหัสวัตถุและไฟล์ส่วนหัวและส่งออกไฟล์ปฏิบัติการ ตัวโหลดโหลดไฟล์เรียกทำงานที่ได้รับจากตัวเชื่อมโยงไปยังหน่วยความจำหลัก

สรุป – ตัวเชื่อมโยง vs ตัวโหลด

Linker และ Loader เป็นส่วนประกอบซอฟต์แวร์สองอย่างที่เกี่ยวข้องกับการทำงานของโปรแกรม บทความนี้กล่าวถึงความแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด Linker เป็นซอฟต์แวร์ที่เชื่อมโยงโค้ดอ็อบเจ็กต์กับไฟล์เพิ่มเติม เช่น ไฟล์ส่วนหัว และสร้างไฟล์ปฏิบัติการที่มีนามสกุล.exe ตัวโหลดคือซอฟต์แวร์ระบบที่โหลดไฟล์เรียกทำงานที่สร้างโดยตัวเชื่อมโยงไปยังหน่วยความจำหลักนั่นคือข้อแตกต่างระหว่างตัวเชื่อมโยงและตัวโหลด