Forskellen mellem Linker og Loader

Forfatter: Laura McKinney
Oprettelsesdato: 3 April 2021
Opdateringsdato: 7 Kan 2024
Anonim
How to make a woman’s haircut! Step by step! Haircuts for beginners!
Video.: How to make a woman’s haircut! Step by step! Haircuts for beginners!

Indhold


Linker og Loader er hjælpeprogrammerne, der spiller en stor rolle i udførelsen af ​​et program. Kildekoden til et program passerer gennem compiler, assembler, linker, loader i den respektive rækkefølge før udførelse. På den ene side, hvor linker indtager objektkoderne, der er genereret af samleren, og kombinerer dem for at generere det eksekverbare modul. På de andre hænder loader indlæser dette eksekverbare modul til hovedhukommelsen til udførelse. Lad os diskutere forskellen mellem Linker og loader ved hjælp af et sammenligningsdiagram.

  1. Sammenligningstabel
  2. Definition
  3. Vigtige forskelle
  4. Konklusion

Sammenligningstabel

Grundlag for sammenligninglinkerLoader
GrundlæggendeDet genererer det eksekverbare modul i et kildeprogram.Det indlæser det eksekverbare modul til hovedhukommelsen.
InputDet tager som input den objektkode, der er genereret af en samler.Det tager eksekverbart modul genereret af en linker.
FungereDet kombinerer alle objektmoduler i en kildekode for at generere et eksekverbart modul.Det tildeler adresserne til et eksekverbart modul i hovedhukommelsen til udførelse.
Type / ApproachLinkage Editor, Dynamic linker.Absolut belastning, flytbar lastning og dynamisk indlæsning af køretid.


Definition af Linker

Assembleren genererer objektkoden for et kildeprogram og overleverer det til linkeren. Linkeren tager denne objektkode og genererer eksekverbar kode til programmet, og overlever det til Loader.

Sprog på højt niveau, programmer har nogle indbyggede biblioteker og header filer. Kildeprogrammet kan indeholde nogle biblioteksfunktioner, hvis definition er gemt i de indbyggede biblioteker. Linkeren forbinder disse funktioner til de indbyggede biblioteker. I tilfælde af at de indbyggede biblioteker ikke findes, informerer den til compileren, og kompilatoren genererer derefter fejlen.

Undertiden er de store programmer opdelt i de underprogrammer, der kaldes moduler. Når disse moduler nu kompileres og samles, genereres objektmodulerne i kildeprogrammet. Linkeren har ansvaret for at kombinere / sammenkæde alle objektmoduler for at generere en enkelt eksekverbar fil i kildeprogrammet. Vi har to typer linkere.


Linkage Editor: Det er en linker, der genererer det flytbare, eksekverbare modul.

Dynamisk linker: Det forsvarer / udsætter linkingen af ​​nogle eksterne moduler, indtil belastningsmodulet / det eksekverbare modul genereres. Her udføres linking under belastningstid eller køretid.

Definition af Loader

Da det program, der skal udføres i øjeblikket, skal opholde sig i computerens hovedhukommelse. Det er ansvaret for loader, et program i et operativsystem til at indlæse den eksekverbare fil / modul i et program, der er genereret af linkeren, til hovedhukommelsen til udførelse. Det tildeler hukommelsesområdet til det eksekverbare modul i hovedhukommelsen.

Der er tre slags indlæsningsmetoder:

  • Absolut belastning
  • Flytbar lastning
  • Dynamisk indlæsningstid

Absolut belastning: Denne tilgang indlæser den eksekverbare fil i et program til en samme hovedhukommelsesplacering hver gang. Men det har nogle ulemper ligesom en programmerer skal være opmærksom på tildelingsstrategien for indlæsning af modulerne i hovedhukommelsen. I tilfælde af at programmet skal ændres, der involverer en vis indsættelse og sletning i programmet, skal alle adresser på programmet ændres.

Flytbar lastning: I denne fremgangsmåde gør kompilatoren eller samleren det ikke producerer den aktuelle hovedhukommelsesadresse. Det producerer de relative adresser.

Dynamisk indlæsningstid: I denne tilgang genereres den absolutte adresse til et program, når en instruktion af et eksekverbart modul faktisk udføres. Det er meget fleksibelt, det indlæste modul / det eksekverbare modul kan indlæses i enhver region i hovedhukommelsen. Eksekveringsprogrammet kan afbrydes imellem og kan udveksles til disken og tilbage til hovedhukommelsen denne gang på en anden hovedhukommelsesadresse.

  1. Den vigtigste forskel mellem linker og læsser er, at linkeren genererer eksekverbar fil i et program, mens loader indlæser den eksekverbare fil, der er opnået fra linkeren, til hovedhukommelse til udførelse.
  2. Linkeren indtager objekt modul af et program genereret af samleren. Læsseren indtager imidlertid eksekverbart modul genereret af linkeren.
  3. Linkeren kombinerer alt objektmodul i et program, der skal genereres eksekverbare moduler det forbinder også bibliotek funktion i objektmodulet til indbyggede biblioteker af programmeringssprog på højt niveau. På den anden side læsser tildeler plads til en eksekverbar modul i hovedhukommelsen.
  4. Linkeren kan klassificeres som linkeditor, og dynamisk linker mens loader kan klassificeres som absolut læsser, flytbar læsser og dynamisk løbetidslaster.

Konklusion:

Linkeren tager objektmodulerne i et program fra samleren og forbinder dem sammen for at generere et eksekverbart modul i et program. Det eksekverbare modul indlæses derefter af læsseren i hovedhukommelsen til udførelse.