Ключевое различие - компоновщик и загрузчик
Компьютерная программа используется, чтобы давать инструкции компьютеру. Он написан с использованием определенного языка программирования. Такие языки программирования, как C, Java, являются языками программирования высокого уровня и понятны людям, но не компьютеру. Поэтому программа высокого уровня преобразуется в машинный язык с помощью языкового переводчика. Программа, написанная с использованием языка высокого уровня, является исходным кодом. После преобразования переведенный код называется объектным кодом. Компоновщик и загрузчик - это две программы, которые используются для выполнения программы. В этой статье обсуждается разница между компоновщиком и загрузчиком. Linker - это программа, которая связывает объектный код с дополнительными файлами, такими как файлы заголовков, и создает исполняемый файл с расширением.exe. Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, созданный компоновщиком, в основную память. Это ключевое различие между Linker и Loader.
СОДЕРЖАНИЕ
1. Обзор и ключевые различия
2. Что такое линкер
3. Что такое загрузчик
4. Взаимосвязь между линкером и загрузчиком
5. Сравнение бок о бок - линкер и загрузчик в табличной форме
6. Резюме
Что такое линкер?
Компьютерная программа - это набор инструкций, данных компьютеру для выполнения определенной задачи. Компьютерная программа может быть написана с использованием языка программирования. Большинство языков программирования относятся к программированию высокого уровня. Они легко понимаются и читаются программистом. Эти языки имеют синтаксис, аналогичный синтаксису английского языка. Некоторыми примерами языков высокого уровня являются Java, C и Python. Программа, написанная с использованием языка программирования высокого уровня, называется исходным кодом, исходным файлом или исходной программой. Расширение исходного кода зависит от языка, на котором он был разработан. Если исходный код написан на C ++, то расширение файла -.cpp. Если исходный код написан на Python, расширение будет.py.
Даже исходный код понятен программисту; это не понимается компьютером. Поэтому исходный код следует преобразовать в машинно-понятный формат с помощью языкового переводчика. Это может быть компилятор или интерпретатор. Переведенный код известен как объектный код. Объектный код написан на машинном языке. Он состоит из нулей и единицы. Компьютер может напрямую понимать объектный код. Он имеет расширение.obj. Если есть исходный код как Test.c, он проходит через компилятор, и преобразованный код становится Test.obj.
Linker - это программное обеспечение, которое связывает объектный код с дополнительными файлами, такими как файлы заголовков, и создает исполняемый файл с расширением.exe. Программа могла использовать встроенные функции. Функциональные возможности для этих встроенных функций находятся в файлах заголовков. Согласно объясненному выше примеру, объектный код Test.obj добавляется с необходимыми заголовочными файлами с помощью компоновщика. Он создает новый файл под названием Test.exe. Это исполняемый файл. Таким образом, он исполняется на компьютере.
Что такое загрузчик?
Программа, которая должна выполняться, должна быть помещена в память. Компоновщик связывает объектный код и файлы заголовков и выводит исполняемый файл. Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, созданный компоновщиком, в основную память. Он выделяет пространство памяти для исполняемого модуля в основной памяти. Следовательно, загрузчик - это часть операционной системы, которая отвечает за загрузку программ и библиотек.
Рисунок 01: Порядок загрузки исходного кода в память
Загрузка программы состоит из нескольких шагов. Он включает в себя чтение содержимого исполняемого файла, содержащего инструкцию программы, в память, а также выполнение необходимых подготовительных задач для запуска исполняемого файла. По завершении загрузки операционная система запускает программу, передав управление загруженному программному коду. Специальные компьютерные системы, такие как Embedded, обычно не имеют загрузчиков. Код выполняется непосредственно ПЗУ.
Какая связь между компоновщиком и загрузчиком?
Выходные данные компоновщика поступают в загрузчик
В чем разница между компоновщиком и загрузчиком?
Различать статью в середине перед таблицей
Компоновщик против загрузчика |
|
Linker - это программное обеспечение, которое связывает объектный код с дополнительными файлами, такими как файлы заголовков, и создает исполняемый файл с расширением.exe. | Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, созданный компоновщиком, в основную память. |
Ввод | |
Компоновщик принимает выходные данные языкового переводчика, то есть объектный код. | Загрузчик получает вывод от компоновщика, который является исполняемым файлом. |
Функциональность | |
Компоновщик связывает объектный код и файлы заголовков и выводит исполняемый файл. | Загрузчик загружает исполняемый файл, полученный от компоновщика, в основную память. |
Резюме - компоновщик против загрузчика
Linker и Loader - это два программных компонента, связанных с выполнением программы. В этой статье обсуждалась разница между компоновщиком и загрузчиком. Linker - это программное обеспечение, которое связывает объектный код с дополнительными файлами, такими как файлы заголовков, и создает исполняемый файл с расширением.exe. Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, созданный компоновщиком, в основную память. В этом разница между Linker и Loader.