Компилятор и Go Loader

Опубликовано: 15 Февраля, 2023

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

Функции загрузчика:

  1. Распределение
  2. Связывание
  3. Переезд
  4. Загрузка

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

Скомпилируйте и загрузите:

В этой схеме архитектура памяти похожа на ассемблер, присутствующий в памяти, и он всегда будет там, когда у нас будет схема загрузки «компилируй и работай». В другой части памяти находится собранная машинная инструкция, то есть собранная исходная программа. Ассемблированная машинная инструкция помещается непосредственно в назначенную им ячейку памяти.

Работающий:

В этой схеме исходный код поступает в транслятор построчно, а затем эта единственная строка кода загружается в память. На другом языке фрагменты исходного кода выполняются. Построчный код передается транслятору, поэтому надлежащего объектного кода нет. Из-за этого, если пользователь запускает ту же исходную программу, каждая строка кода снова будет переведена переводчиком. Так вот происходит повторный перевод.

Исходная программа проходит через транслятор (компилятор/ассемблер) и потребляет одну часть памяти, а вторую часть памяти занимает ассемблер. Исходной программе не нужен этот ассемблер, но он все еще там, так что это пустая трата памяти.

Преимущества:

  • Это очень просто реализовать.
  • Для выполнения задачи достаточно транслятора, никаких подпрограмм не требуется.
  • Это самая простая схема функций загрузчика.

Недостатки:

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