Різниця між Linker і Loader

Ключова різниця - Лінкер проти Навантажувач
 

Комп'ютерна програма використовується для давання вказівок комп’ютеру. Він пишеться за допомогою певної мови програмування. Мови програмування, такі як C, Java, є мовами програмування високого рівня, і вони зрозумілі люди, але не комп'ютером. Тому програма високого рівня перетворюється на машинну мову за допомогою мовного перекладача. Програма, написана мовою високого рівня, є вихідним кодом. Після перетворення переведений код називається об'єктним кодом. Linker and loader - це дві програми, які використовуються для виконання програми. У цій статті йдеться про різницю між Linker та Loader. Linker - це програмне забезпечення, яке пов'язує об'єктний код з додатковими файлами, такими як файли заголовків, і створює виконуваний файл з розширенням .exe. Завантажувач - це системне програмне забезпечення, яке завантажує виконуваний файл, згенерований лінкером, в основну пам'ять. Це те саме ключова різниця між Linker і Loader.

ЗМІСТ

1. Огляд та ключові відмінності
2. Що таке Лінкер
3. Що таке навантажувач
4. Зв'язок між лінкером та навантажувачем
5. Бічне порівняння - Linker vs Loader у табличній формі
6. Підсумок

Що таке Linker?

Комп'ютерна програма - це набір інструкцій, що даються комп'ютеру для виконання певного завдання. Комп'ютерна програма може бути написана за допомогою мови програмування. Більшість мов програмування - це програмування високого рівня. Вони легко зрозумілі та зрозумілі програмісту. Ці мови дотримуються синтаксису, подібного до англійської. Деякі приклади мов високого рівня - Java, C та Python. Програма, написана на мові програмування високого рівня, називається вихідним кодом, вихідним файлом або вихідною програмою. Розширення вихідного коду залежить від мови, з якою він був розроблений. Якщо вихідний код записаний на C ++, то розширення файлу - .cpp. Якщо вихідний код написаний на Python, розширенням є .py.

Навіть вихідний код програміст зрозумілий; це не зрозуміло комп’ютеру. Тому вихідний код слід перетворити на машинно зрозумілий формат за допомогою мовного перекладача. Це може бути упорядник чи перекладач. Перекладений код відомий як код об'єкта. Об'єктний код є машинною мовою. Він складається з нулів і одного разу. Комп’ютер може безпосередньо зрозуміти об'єктний код. Він має розширення .obj. Якщо є вихідний код як Test.c, він проходить через компілятор і перетворений код стає Test.obj.

Linker - це програмне забезпечення, яке пов'язує об'єктний код з додатковими файлами, такими як файли заголовків, і створює виконуваний файл з розширенням .exe. Програма, можливо, використовувала вбудовані функції. Функції цих вбудованих функцій містяться у заголовкових файлах. Згідно з вищеописаним прикладом, об'єктний код, який є Test.obj, додається до необхідних файлів заголовків за допомогою Linker. Він створює новий файл, відомий під назвою Test.exe. Це виконуваний файл. Тому він виконується комп’ютером.

Що таке навантажувач?

Програма, яку слід виконати, повинна бути поміщена в пам'ять. Лінкер пов'язує об'єктний код і файли заголовків і виводить виконуваний файл. Завантажувач - це системне програмне забезпечення, яке завантажує виконуваний файл, згенерований лінкером, в основну пам'ять. Він виділяє простір пам'яті виконуваному модулю в основній пам'яті. Тому завантажувач - це частина операційної системи, яка відповідає за завантаження програм і бібліотек.

Малюнок 01: Порядок, у якому вихідний код завантажується в пам'ять

Завантаження програми включає кілька етапів. Він передбачає зчитування вмісту виконуваного файлу, що містить інструкцію програми, в пам'ять, а також виконання необхідних завдань підготовки для запуску виконуваного файлу. Після завершення завантаження операційна система запускає програму, передаючи керування завантаженому програмному коду. Спеціальні комп'ютерні системи, такі як вбудовані системи, як правило, не мають навантажувачів. Код виконується безпосередньо ПЗУ.

Які взаємозв'язки між лінкером та навантажувачем?

  • Вихід Linker йде на Loader.

Яка різниця між Linker та Loader?

Linker vs Loader

Linker - це програмне забезпечення, яке пов'язує об'єктний код з додатковими файлами, такими як файли заголовків, і створює виконуваний файл з розширенням .exe. Завантажувач - це системне програмне забезпечення, яке завантажує виконуваний файл, згенерований лінкером, в основну пам'ять.
 Вхідні дані
Лінкер приймає висновок мовного перекладача, який є об'єктним кодом. Навантажувач приймає вихід з лінкера, який є виконуваним файлом.
Функціональність
Лінкер пов'язує об'єктний код і файли заголовків і виводить виконуваний файл. Завантажувач завантажує виконуваний файл, отриманий з лінкера, в основну пам'ять.

Підсумок - Лінкер проти Навантажувач

Linker і Loader - це два програмні компоненти, пов'язані з виконанням програми. У цій статті йшлося про різницю між Linker і Loader. Linker - це програмне забезпечення, яке пов'язує об'єктний код з додатковими файлами, такими як файли заголовків, і створює виконуваний файл з розширенням .exe. Завантажувач - це системне програмне забезпечення, яке завантажує виконуваний файл, згенерований лінкером, в основну пам'ять. У цьому різниця між Linker і Loader.

Довідка:

1. 'Завантажувач (обчислювальна техніка)', Вікіпедія, Фонд Вікімедіа, 28 лютого 2018 р. Доступний тут