Skirtumas tarp „Linker“ ir „Krautuvo“

Autorius: Laura McKinney
Kūrybos Data: 3 Balandis 2021
Atnaujinimo Data: 7 Gegužė 2024
Anonim
What are Linker and Loader | Difference between Linker and Loader | Dr. Kapil Govil
Video.: What are Linker and Loader | Difference between Linker and Loader | Dr. Kapil Govil

Turinys


„Linker“ ir „krautuvas“ yra naudingosios programos, kurios vaidina pagrindinį vaidmenį vykdant programą. Programos išeities kodas praeina per kompiliatorių, surinkėją, sujungėją, kroviklį atitinkama tvarka prieš vykdant. Viena vertus, kur linkeris įveda surinkėjo sugeneruotus objektų kodus ir juos sujungia, kad būtų sukurtas vykdomasis modulis. Kita vertus, krautuvas įkelia šį vykdomąjį modulį į pagrindinę atmintį vykdymui. Palyginkime lentelę su „Linker“ ir „krautuvu“ skirtumu.

  1. Palyginimo diagrama
  2. Apibrėžimas
  3. Pagrindiniai skirtumai
  4. Išvada

Palyginimo diagrama

Palyginimo pagrindasLinkerisKrautuvas
PagrindinisTai sukuria vykdomąjį šaltinio programos modulį.Jis įkelia vykdomąjį modulį į pagrindinę atmintį.
ĮvestisKaip įvestis naudojama surinkėjo sugeneruotas objekto kodas.Tai užima vykdomąjį modulį, kurį sukuria jungiklis.
FunkcijaJis sujungia visus šaltinio kodo objekto modulius, kad būtų sukurtas vykdomasis modulis.Jis paskirsto adresus vykdomajam moduliui pagrindinėje atmintyje vykdyti.
Tipas / metodasRyšių redaktorius, dinaminis jungiklis.Absoliutus pakrovimas, pakartotinai pakraunamas ir dinaminis paleidimo laikas.


Ryšininko apibrėžimas

Surinkėjas sugeneruoja šaltinio programos objekto kodą ir perduoda jį sujungėjui. Ryšininkas paima šį objekto kodą ir sugeneruoja vykdomasis kodas programai ir perduokite ją krautuvui.

Aukšto lygio kalba, programos turi keletą įmontuotos bibliotekos ir antraštės failai. Šaltinio programoje gali būti keletas bibliotekų funkcijų, kurių apibrėžimas saugomas įmontuotose bibliotekose. Linkeris susieja šias funkcijas su įmontuotomis bibliotekomis. Jei nerandama vidinių bibliotekų, ji informuoja kompiliatorių, o kompiliatorius sukuria klaidą.

Kartais didžiosios programos skirstomos į vadinamąsias paprogrames moduliai. Dabar, kai šie moduliai yra sukompiliuoti ir surinkti, sugeneruojami šaltinio programos objektiniai moduliai. Ryšininkas yra atsakingas už visų objekto modulių sujungimą / susiejimą, kad būtų sugeneruotas vienas šaltinio programos vykdomasis failas. Mes turime dviejų tipų jungtukus.


Ryšių redaktorius: Tai yra jungiklis, kuris sukuria perkeliamą, vykdomąjį modulį.

Dinaminis jungiklis: Tai atideda / atideda kai kurių išorinių modulių sujungimą, kol bus sukurtas apkrovos modulis / vykdomasis modulis. Čia susiejimas atliekamas per įkėlimo arba vykdymo laiką.

Krautuvo apibrėžimas

Kadangi šiuo metu vykdoma programa turi būti pagrindinėje kompiuterio atmintyje. Tai yra atsakomybė krautuvas, programą operacinėje sistemoje, įkeliant jungiamojo failo / programos modulį į pagrindinę atmintį vykdymui. Jis paskirsto vietą pagrindiniame atmintyje vykdomajam moduliui.

Yra trys rūšių krovimo būdai:

  • Absoliutus krovimas
  • Perkraunama
  • Dinaminis krovimo laikas

Absoliutus krovimas: Šis metodas įkelia vykdomąjį programos failą į ta pati pagrindinės atminties vieta kiekvieną kartą. Bet ji turi keletą trūkumai kaip programuotojas, turi žinoti priskyrimo strategiją, skirtą įkelti modulius į pagrindinę atmintį. Tuo atveju, jei programą reikia modifikuoti įtraukiant ir ištrinant programą, reikia pakeisti visus programos adresus.

Perkraunama: Tokiu būdu sudarytojas ar surinkėjas tai daro negaminti pagrindinio atminties adreso. Tai sukuria santykinius adresus.

Dinaminis vykdymo laiko pakrovimas: Taikant šį metodą, absoliutus programos adresas sugeneruojamas, kai faktiškai vykdomas vykdomojo modulio nurodymas. Jis yra labai lankstus, į jį gali būti įkeliamas įkeliamas modulis / vykdomasis modulis bet kuris pagrindinės atminties regionas. Vykdančioji programa gali būti pertraukiama tarp jų ir gali būti perkeista į diską ir atgal į pagrindinę atmintį šį kartą kitu pagrindinės atminties adresu.

  1. Svarbiausias skirtumas tarp linkerio ir krautuvo yra tas, kad linkeris sukuria vykdomasis programos failas, tuo tarpu krautuvas įkelia vykdomąjį failą, gautą iš linkerio, į pagrindinė atmintis vykdymui.
  2. Ryšys įsiurbia objekto modulis programos, kurią sukūrė surinkėjas. Tačiau krautuvas priima vykdomasis modulis kurį sukuria linkeris.
  3. Ryšys sujungia visus programos objektų modulius generuoti vykdomieji moduliai tai taip pat susieja bibliotekos funkcija objekto modulyje įmontuotos bibliotekos aukšto lygio programavimo kalbos. Kita vertus, krautuvas skiria vietą vykdomajam modulis pagrindinėje atmintyje.
  4. Linkerį galima klasifikuoti kaip jungčių redaktorius, ir dinaminis linkeris kadangi krautuvas gali būti klasifikuojamas kaip absoliutus krautuvas, perkeliamas krautuvas ir dinaminis vykdymo laiko krautuvas.

Išvada:

Ryšys paima objekto programos modulius iš surinkėjo ir susieja juos, kad būtų sukurtas vykdomasis programos modulis. Tada įkėlėjas įkelia vykdomąjį modulį į pagrindinę atmintį vykdymui.