Különbség a Linker és a Rakodó között

Szerző: Laura McKinney
A Teremtés Dátuma: 3 Április 2021
Frissítés Dátuma: 7 Lehet 2024
Anonim
Különbség a Linker és a Rakodó között - Technológia
Különbség a Linker és a Rakodó között - Technológia

Tartalom


A Linker és a Loader olyan segédprogramok, amelyek nagy szerepet játszanak egy program végrehajtásában. A program forráskódja a végrehajtás előtt átfordul a fordítón, összeszerelőn, linkeren, betöltőn a megfelelő sorrendben. Egyrészt, ahol a linker felveszi az összeszerelő által generált objektumkódokat, és egyesíti azokat a végrehajtható modul előállításához. Másrészt a rakodó betölti ezt a végrehajtható modult a fő memóriába végrehajtás céljából. Hasonlítsuk össze egy összehasonlító diagram segítségével a Linker és a rakodó közötti különbséget.

  1. Összehasonlító táblázat
  2. Meghatározás
  3. Főbb különbségek
  4. Következtetés

Összehasonlító táblázat

Az összehasonlítás alapjalinkerloader
AlapvetőEgy forrásprogram végrehajtható modulját hozza létre.Betölti a végrehajtható modult a fő memóriába.
BemenetBemenetként az összeszerelő által generált objektumkódot veszi figyelembe.A linker által generált végrehajtható modult veszi igénybe.
FunkcióEgyesíti a forráskód összes objektummodulját egy végrehajtható modul előállításához.Kiosztja a címeket a fő memóriában lévő végrehajtható modulhoz a végrehajtáshoz.
Típus / MegközelítésLinkage szerkesztő, dinamikus összekötő.Abszolút betöltés, újratölthető betöltés és dinamikus futási idő betöltése.


A Linker meghatározása

Az összeszerelő generálja a forrásprogram objektumkódját, és átadja azt a linkernek. A kapcsoló ezt az objektumkódot veszi és létrehozza a végrehajtható kód a programra, és adja át a Loader-nek.

A magas szintű nyelvnek, a programoknak van néhányuk beépített könyvtárak és fejléc fájlok. A forrásprogram tartalmazhat néhány könyvtári funkciót, amelyek meghatározását a beépített könyvtárak tárolják. A kapcsoló összeköti ezeket a funkciókat a beépített könyvtárakkal. Ha a beépített könyvtárakat nem találja, akkor erről értesíti a fordítót, majd a fordító generálja a hibát.


Időnként a nagy programokat fel lehet osztani az úgynevezett alprogramokra modulok. Most, amikor ezeket a modulokat összeállítják és összeszerelik, a forrásprogram objektummoduljai kerülnek előállításra. A linker felelőssége az összes objektummodul kombinálása / összekapcsolása a forrásprogram egyetlen futtatható fájljának előállításához. Kétféle kapcsolónk van.

Linkage Editor: Ez egy kapcsoló, amely létrehozza az áthelyezhető, végrehajtható modult.

Dinamikus kapcsoló: Halasztja / elhalasztja egyes külső modulok kapcsolását, amíg a betöltési modul / végrehajtható modul el nem jön. Az összekapcsolás itt történik betöltési vagy futási idő alatt.

A betöltő meghatározása

Mivel a végrehajtandó programnak jelenleg a számítógép fő memóriájában kell lennie. Ez a rakodó, egy program az operációs rendszerben, a linker által generált program futtatható fájljának / moduljának betöltéséhez a fő memóriába. A memóriaterületet a fő memória végrehajtható moduljára osztja.

Háromféle betöltési megközelítés létezik:

  • Abszolút terhelés
  • Áthelyezhető rakodás
  • Dinamikus futási idő betöltése

Abszolút terhelés: Ez a megközelítés betölti a program futtatható fájlját a ugyanaz a fő memória helye minden alkalommal. De van némi hátrányok úgy, mint egy programozónak, tisztában kell lennie a hozzárendelési stratégiával, amellyel a modulokat a memóriába töltheti. Abban az esetben, ha a programot módosítani kell valamilyen beillesztéssel és törléssel a programban, akkor a program összes címét meg kell változtatni.

Áthelyezhető betöltés: Ebben a megközelítésben a fordító vagy az összeszerelő megteszi nem hozza létre a fő memória címét. Ez előállítja a relatív címeket.

Dinamikus futási idő betöltése: Ebben a megközelítésben a program abszolút címe akkor jön létre, amikor egy végrehajtható modul utasítása ténylegesen végrehajtásra kerül. Nagyon rugalmas, a betölthető modul / végrehajtható modul beilleszthető a fő memória bármely régiója. A végrehajtó program közt megszakítható, és kicserélhető a lemezre és vissza a fő memóriába, ezúttal egy másik fő memória címmel.

  1. A kapcsoló és a rakodó közötti fő különbség az, hogy a kapcsoló generálja a végrehajtható egy program fájlja, míg a betöltő betölti a linkertől kapott végrehajtható fájlt fő memória a végrehajtáshoz.
  2. A kapcsoló beveszi a objektum modul az összeszerelő által generált programból. A rakodó azonban beveszi a futtatható modul a kapcsoló által generált.
  3. A kapcsoló egyesíti a program összes objektummodulját a létrehozáshoz futtatható modulok ez is összekapcsolja a könyvtár funkció az objektum modulban beépített könyvtárak a magas szintű programozási nyelv. Másrészt rakodó helyet foglal el egy végrehajtható fájlnak modul a fő memóriában.
  4. A kapcsoló az alábbiak szerint osztályozható: kapcsolat szerkesztő, és dinamikus kapcsoló mivel a rakodógép besorolható: abszolút rakodó, áthelyezhető rakodó és dinamikus futásidejű betöltő.

Következtetés:

A kapcsoló egy program objektummoduljait veszi az összeszerelőtől, és összekapcsolja azokat egy program végrehajtható moduljának előállításához. Ezután a betöltő betölti a végrehajtható modult a fő memóriába végrehajtás céljából.