Soovitatav, 2024

Toimetaja Valik

Linkeri ja laaduri vahe

Linker ja Loader on kasulikud programmid, millel on programmi täitmisel oluline roll. Programmi lähtekoodi läbib enne täitmist kompilaator, kokkupanek, linker, laadur vastavas järjekorras. Ühelt poolt, kus linker võtab kokku kokkupaneku poolt genereeritud objektikoodid ja kombineerib need käivitatava mooduli loomiseks. Teisest küljest laadib laadur selle käivitatava mooduli täitmiseks. Arutagem Linkeri ja laaduri vahelist erinevust võrdluskaardi abil.

Võrdluskaart

Võrdluse alusLinkerLaadur
PõhilineSee genereerib lähteprogrammi käivitatava mooduli.See laadib käivitatava mooduli põhimällu.
SisendSee võtab sisendina kogumisseadme poolt loodud objekti koodi.See võtab lingi abil loodud käivitatava mooduli.
FunktsioonSee ühendab kõik lähtekoodi objektimoodulid käivitatava mooduli loomiseks.See jaotab aadressid täitmismoodulile põhimälus täitmiseks.
Tüüp / lähenemineLinkage Editor, dünaamiline linker.Absoluutne laadimine, teisaldatav laadimine ja dünaamiline laadimisaeg.

Linkeri määratlus

Assembler genereerib lähteprogrammi objekti koodi ja edastab selle linkerile. Linker võtab selle objektikoodi ja genereerib programmi jaoks käivitatava koodi ning annab selle laadijale üle.

Kõrgtasemel keelel, programmidel on mõned sisseehitatud teegid ja päisefailid . Lähteprogramm võib sisaldada mõningaid raamatukogu funktsioone, mille määratlus on salvestatud sisseehitatud raamatukogudes. Linker ühendab need funktsioonid sisseehitatud raamatukogudega. Kui sisseehitatud raamatukogusid ei leita, teavitab see kompilaatorit ja kompilaator genereerib seejärel vea.

Mõnikord jagatakse suured programmid alamprogrammideks, mida nimetatakse mooduliteks . Nüüd, kui need moodulid koostatakse ja koostatakse, genereeritakse lähteprogrammi objektimoodulid. Linkeri ülesandeks on ühendada / ühendada kõik objektimoodulid, et genereerida üks allalaaditava programmi käivitatav fail. Meil on kahte tüüpi linkereid.

Linkage Editor : See on linker, mis genereerib teisaldatava ja käivitatava mooduli.

Dünaamiline linker : see piirab / lükkab edasi mõnede väliste moodulite sidumise kuni koormusmooduli / käivitatava mooduli loomiseni. Siin toimub linkimine koormusaja või tööaja jooksul.

Laaduri määratlus

Kuna käivitatav programm peab asuma arvuti peamises mälus. Laaduri, operatsioonisüsteemi programmi ülesanne on laadida linkeri poolt genereeritud programmi käivitatav fail / moodul peamiseks mälu täitmiseks. See jaotab mäluruumi põhimälus olevale käivitatavale moodulile.

Laadimisviise on kolm tüüpi:

  • Absoluutne laadimine
  • Ümberlaaditav laadimine
  • Dünaamiline tööaja laadimine

Absoluutne laadimine : see lähenemine laadib programmi käivitatava faili iga peamise mälu asukohta . Kuid sellel on mõned puudused, nagu programmeerija peab olema teadlik moodulite peamisele mälule laadimise ülesande strateegiast. Juhul, kui programmi tuleb programmis mõnevõrra sisestada ja kustutada, tuleb programmi kõiki aadresse muuta.

Ümberpaigutatav laadimine: sellisel lähenemisel ei koosta kompilaator või monteerija tegelikku peamise mälu aadressi . See loob suhtelised aadressid.

Dünaamiline töötamisaegne laadimine : Selles lähenemisviisis genereeritakse programmi absoluutne aadress, kui käivitatava mooduli käsklus on tegelikult teostatud. See on väga paindlik, laaditavat moodulit / käivitatavat moodulit saab laadida mis tahes peamise mälu piirkonda . Täitmisprogrammi saab katkestada ja seda saab vahetada plaadile ja tagasi peamällu sel ajal teise peamise mälu aadressil.

Linkeri ja laaduri vahelised peamised erinevused

  1. Linkeri ja laaduri vahel on peamiseks erinevuseks see, et linker genereerib programmi käivitatava faili, samas kui laadur laadib linkerilt saadud käivitatava faili peamiseks mäluks täitmiseks .
  2. Linker võtab kogumisseadme poolt genereeritud programmi objekti mooduli . Kuid laadur võtab vastu linkeri loodud käivitatava mooduli .
  3. Linker ühendab programmi kogu objektimooduli, et luua käivitatavaid mooduleid, mis seob ka objektimooduli teegifunktsioonid kõrgetasemelise programmeerimiskeele sisseehitatud raamatukogudega . Teisalt eraldab laadur ruumi peamälu täitmismoodulile.
  4. Linkerit võib klassifitseerida sideme redaktoriks ja dünaamiliseks linkeriks, samas kui laadurit võib liigitada absoluutseks laaduriks, ümberpaigutatavaks laaduriks ja dünaamiliseks ajastatud laaduriks .

Järeldus:

Linker võtab programmi objektimoodulid kokku monteerijalt ja ühendab need programmi käivitatava mooduli loomiseks. Seejärel laadib laadija käivitatava mooduli peamiseks mälu täitmiseks.

Top