Разница между Компоновщиком и Загрузчиком

Для передачи инструкций компьютеру используется компьютерная программа. Она написан с использованием определенного языка программирования. Языки программирования, такие как C, Java — это языки программирования высокого уровня, и они понятны людям, но не компьютеру. Таким образом, программа высокого уровня преобразуется в машинный язык с помощью транслятора. Программа, написанная с использованием языка высокого уровня, является исходным кодом. После преобразования переведенный код называется объектным кодом. Компоновщик и загрузчик — это две программы, которые используются для выполнения программы.

Компоновщик — это программное обеспечение, которое связывает объектный код с дополнительными файлами, такими как заголовочные файлы, и создает исполняемый файл с расширением «.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. Это исполняемый файл. Следовательно, он исполняется компьютером.

Схема процесса линковки
Схема процесса линковки

Что такое Загрузчик?

Программа, которая должна выполняться, должна быть помещена в память компьютера. Компоновщик связывает объектный код и заголовочные файлы и выводит исполняемый файл. Загрузчик (Loader) — это системное программное обеспечение, которое загружает исполняемый файл, созданный компоновщиком, в основную память. Он выделяет пространство памяти исполняемому модулю в основной памяти. Таким образом, загрузчик является частью операционной системы, которая отвечает за загрузку программ и библиотек.

Читайте также:  Разница между Фишингом и Спуфингом

Загрузка программы включает в себя несколько этапов. Он включает в себя чтение содержимого исполняемого файла, содержащего инструкцию программы в память, а также выполнение необходимых подготовительных задач для запуска исполняемого файла.

После завершения загрузки операционная система запускает программу, передавая управление загруженному программному коду. Специальные компьютерные системы, такие как встроенные системы, как правило, не имеют загрузчиков. Код выполняется непосредственно ПЗУ.

Сходство между Компоновщиком и Загрузчиком?

  • Выход компоновщика идет в загрузчик.

В чем разница между Компоновщиком и Загрузчиком?

Компоновщик против Загрузчика
Компоновщик или Linker — это программа, которая связывает объектный код с дополнительными файлами, такими как заголовочные файлы, и создает исполняемый файл с расширением .exe Загрузчик или Loader — это системное программное обеспечение, которое загружает исполняемый файл, сгенерированный компоновщиком, в основную память
Входные данные
Компоновщик принимает вывод транслятора который является объектным кодом Загрузчик получает вывод из компоновщика, который является исполняемым файлом
Функциональность
Компоновщик связывает объектный код и файлы заголовков и выводит исполняемый файл Загрузчик загружает исполняемый файл, полученный от компоновщика, в основную память

 

Заключение — Компоновщик против Загрузчика

Компоновщик (Linker) и Загрузчик (Loader) — это два программных компонента, связанных с выполнением программы. Компоновщик — это программное обеспечение, которое связывает объектный код с дополнительными файлами, такими как заголовочные файлы, и создает исполняемый файл с расширением .exe. Загрузчик — это системное программное обеспечение, которое загружает исполняемый файл, созданный компоновщиком, в основную память. В этом и заключается разница между Компоновщиком и Загрузчиком.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *