Компьютерная программа используется, чтобы дать инструкции компьютеру. Он написан с использованием определенного языка программирования. Языки программирования, такие как C, Java, являются языками программирования высокого уровня, и они понятны людям, но не компьютеру. Поэтому программа высокого уровня конвертируется в машинный язык с использованием языкового переводчика. Программа, написанная на языке высокого уровня, является исходным кодом. После преобразования переведенный код называется объектным кодом. Компоновщик и загрузчик - это две программы, которые используются для выполнения программы. В этой статье обсуждается разница между компоновщиком и загрузчиком. Linker - это программа, которая связывает объектный код с дополнительными файлами, такими как заголовочные файлы, и создает исполняемый файл с расширением .exe. Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, сгенерированный компоновщиком, в основную память. Это ключевое отличие между компоновщиком и загрузчиком.
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: Порядок загрузки исходного кода в память
Загрузка программы включает в себя несколько шагов. Он включает чтение содержимого исполняемого файла, содержащего инструкцию программы, в память, а также выполнение необходимых подготовительных заданий для запуска исполняемого файла. После завершения загрузки операционная система запускает программу, передавая управление загруженному программному коду. Специальные компьютерные системы, такие как встроенные системы, обычно не имеют загрузчиков. Код выполняется непосредственно ПЗУ.
Линкер против загрузчика | |
Linker - это программа, которая связывает объектный код с дополнительными файлами, такими как заголовочные файлы, и создает исполняемый файл с расширением .exe.. | Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, сгенерированный компоновщиком, в основную память. |
вход | |
Компоновщик принимает вывод языкового переводчика, который является объектным кодом. | Загрузчик получает вывод из компоновщика, который является исполняемым файлом. |
функциональность | |
Компоновщик связывает объектный код и файлы заголовков и выводит исполняемый файл. | Загрузчик загружает исполняемый файл, полученный из компоновщика, в основную память. |
Linker и Loader - это два программных компонента, связанных с выполнением программы. В этой статье обсуждалась разница между компоновщиком и загрузчиком. Linker - это программа, которая связывает объектный код с дополнительными файлами, такими как заголовочные файлы, и создает исполняемый файл с расширением .exe. Загрузчик - это системное программное обеспечение, которое загружает исполняемый файл, сгенерированный компоновщиком, в основную память. В этом разница между компоновщиком и загрузчиком.
1. «Загрузка (вычисления)», Википедия, Фонд Викимедиа, 28 февраля 2018 г. Доступно здесь