Különbség a Linker és a Rakodó között
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.
- Összehasonlító táblázat
- Meghatározás
- Főbb különbségek
- Következtetés
Összehasonlító táblázat
Az összehasonlítás alapja | linker | loader |
---|---|---|
Alapvető | Egy forrásprogram végrehajtható modulját hozza létre. | Betölti a végrehajtható modult a fő memóriába. |
Bemenet | Bemenetké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és | Linkage 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.
- 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.
- 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.
- 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.
- 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.