Rozdiel medzi linkerom a Loaderom

Autor: Laura McKinney
Dátum Stvorenia: 3 Apríl 2021
Dátum Aktualizácie: 7 Smieť 2024
Anonim
Релиз Java 17 и Windows 11. Платный Docker и новые MacBook от Apple [MJC News #9]
Video: Релиз Java 17 и Windows 11. Платный Docker и новые MacBook от Apple [MJC News #9]

Obsah


Linker a Loader sú pomocné programy, ktoré zohrávajú hlavnú úlohu pri vykonávaní programu. Zdrojový kód programu prechádza kompilátorom, zostavovačom, linkerom, zavádzačom v príslušnom poradí pred vykonaním. Na jednej strane, kde linker zavedie kódy objektov generované zostavovačom a skombinuje ich na vygenerovanie spustiteľného modulu. Na druhej strane loader načíta tento spustiteľný modul do hlavnej pamäte na vykonanie. Poďme diskutovať o rozdieloch medzi Linkerom a zavádzačom pomocou porovnávacej tabuľky.

  1. Porovnávacia tabuľka
  2. definícia
  3. Kľúčové rozdiely
  4. záver

Porovnávacia tabuľka

Základ pre porovnaniespojovacieloader
základnéGeneruje spustiteľný modul zdrojového programu.Načíta spustiteľný modul do hlavnej pamäte.
vstupBerie ako vstup kód objektu vygenerovaný zostavovateľom.Trvá spustiteľný modul vygenerovaný linkerom.
funkcieKombinuje všetky objektové moduly zdrojového kódu a vytvára spustiteľný modul.Na vykonanie vykoná pridelenie adries spustiteľnému modulu v hlavnej pamäti.
Typ / ApproachEditor odkazov, dynamický linker.Absolútne zaťaženie, premiestniteľné načítanie a dynamické načítanie za behu.


Definícia linkera

Assembler generuje kód objektu zdrojového programu a odovzdá ho linkerovi. Linker vezme tento kód objektu a vygeneruje spustiteľný kód pre program a odovzdajte ho nakladaču.

Niektoré jazyky majú programy vysokej úrovne vstavané knižnice a hlavičkové súbory, Zdrojový program môže obsahovať niektoré funkcie knižnice, ktorých definícia je uložená vo vstavaných knižniciach. Linker tieto funkcie spája so vstavanými knižnicami. Ak sa zabudované knižnice nenájdu, informujú o tom kompilátor a kompilátor potom vygeneruje chybu.

Veľké programy sa niekedy rozdelia na podprogramy, ktoré sa nazývajú moduly, Teraz, keď sa tieto moduly zostavia a zostavia, vygenerujú sa objektové moduly zdrojového programu. Linker je zodpovedný za kombinovanie / prepájanie všetkých objektových modulov na generovanie jedného spustiteľného súboru zdrojového programu. Máme dva typy linkerov.


Editor odkazov: Je to linker, ktorý generuje premiestniteľný spustiteľný modul.

Dynamic Linker: Odstraňuje / odkladá prepojenie niektorých externých modulov, kým sa nevytvorí záťažový modul / spustiteľný modul. V tomto prípade sa prepojenie vykonáva počas doby načítania alebo spustenia.

Definícia nakladača

Pretože program, ktorý sa má vykonať, musí byť v hlavnej pamäti počítača. Je zodpovednosťou úradu loader, program v operačnom systéme na načítanie spustiteľného súboru / modulu programu generovaného linkerom do hlavnej pamäte na vykonanie. Pridelí pamäťový priestor spustiteľnému modulu v hlavnej pamäti.

Existujú tri druhy prístupov k načítaniu:

  • Absolútne zaťaženie
  • Premiestniteľné zaťaženie
  • Dynamické načítanie za behu

Absolútne zaťaženie: Tento prístup načíta spustiteľný súbor programu do a rovnaké hlavné miesto v pamäti zakaždým. Ale má nejaké nevýhody ako programátor si musí byť vedomý stratégie priradenia pre načítanie modulov do hlavnej pamäte. V prípade, že je potrebné program modifikovať tak, že do programu bude vložené a vymazané, musia sa zmeniť všetky adresy programu.

Premiestniteľné zaťaženie: V tomto prístupe kompilátor alebo zostavovateľ áno nevytvára skutočnú adresu hlavnej pamäte, Vytvára relatívne adresy.

Dynamické načítanie za behu: Pri tomto prístupe sa absolútna adresa programu vygeneruje, keď sa skutočne vykoná inštrukcia spustiteľného modulu. Je veľmi flexibilný, do ktorého sa dá načítať modul / spustiteľný modul ľubovoľná oblasť hlavnej pamäte, Vykonávací program sa môže medzi nimi prerušiť a možno ho vymeniť na disk a späť do hlavnej pamäte na inú adresu hlavnej pamäte.

  1. Kľúčový rozdiel medzi linkerom a zavádzačom je v tom, že linker generuje spustiteľný súbor programu, zatiaľ čo zavádzač načíta spustiteľný súbor získaný z linkera hlavná pamäť na vykonanie.
  2. Linker nasáva objektový modul programu generovaného zostavovateľom. Nakladač však vstupuje do systému spustiteľný modul generované linkerom.
  3. Linker kombinuje všetky objektové moduly programu, ktorý sa má vygenerovať spustiteľné moduly tiež spája internetový obchod funkcia knižnice v objektovom module na vstavané knižnice programovacieho jazyka na vysokej úrovni. Na druhej strane nakladač alokuje priestor spustiteľnému súboru modul v hlavnej pamäti.
  4. Linker možno klasifikovať ako editor odkazov, a dynamický linker keďže nakladač možno klasifikovať ako absolútny nakladač, premiestniteľný nakladač a dynamický nakladač za behu.

záver:

Linker vezme objektové moduly programu z assemblera a spojí ich dohromady, aby vygeneroval spustiteľný modul programu. Spustiteľný modul je potom načítaný zavádzačom do hlavnej pamäte na vykonanie.