Sammenligningstabel
Grunnlag for sammenligning | linker | loader |
---|---|---|
grunn~~POS=TRUNC | Den genererer den kjørbare modulen til et kildeprogram. | Den laster den kjørbare modulen til hovedminnet. |
Input | Det tar som inngang, objektkoden generert av en assembler. | Det krever kjørbar modul generert av en linker. |
Funksjon | Den kombinerer alle objektmodulene til en kildekode for å generere en kjørbar modul. | Den tildeler adressene til en kjørbar modul i hovedminne for utførelse. |
Type / Approach | Linkage Editor, Dynamic linker. | Absolutt lasting, Relocatable loading og Dynamic Run-time lasting. |
Definisjon av Linker
Samleren genererer objektkoden til et kildeprogram og overfører det til linkeren. Lenkeren tar denne objektkoden og genererer den kjørbare koden for programmet, og overleverer den til Loader.
Språk på høyt nivå, programmer har noen innebygde biblioteker og headerfiler . Kildeprogrammet kan inneholde noen biblioteksfunksjoner hvis definisjon er lagret i de innebygde bibliotekene. Linkeren knytter denne funksjonen til de innebygde bibliotekene. Hvis de innebygde bibliotekene ikke blir funnet, informerer den til kompilatoren, og kompilatoren genererer deretter feilen.
Noen ganger er de store programmene delt inn i delprogrammene som kalles moduler . Nå når disse modulene samles og monteres, genereres objektmodulene i kildeprogrammet. Lenkeren har ansvaret for å kombinere / lenke alle objektmodulene for å generere en enkelt kjørbar fil i kildeprogrammet. Vi har to typer linkers.
Linkage Editor : Det er en linker som genererer den flyttbare, kjørbare modulen.
Dynamisk Linker : Den forsvarer / utsetter koblingen til noen eksterne moduler til lastmodulen / kjørbar modul er generert. Her er kobling gjort under lastetid eller kjøretid.
Definisjon av Loader
Ettersom programmet som må utføres, må det oppholde seg i datamaskinens hovedminne. Det er ansvaret for lasteren, et program i et operativsystem, å laste den kjørbare filen / modulen til et program generert av linkeren, til hovedminnet for utførelse. Det tildeler minnesplassen til den kjørbare modulen i hovedminnet.
Det finnes tre typer lastingstilnærminger:
- Absolutt lasting
- Flyttbar lasting
- Dynamisk kjøretid lasting
Absolutt lasting : Denne tilnærmingen laster den kjørbare filen til et program til samme hovedminneplassering hver gang. Men det har noen ulemper som en programmerer må være oppmerksom på oppdragsstrategien for å laste modulene til hovedminne. I tilfelle, programmet skal modifiseres med noen innføring og sletting i programmet, må alle adressene til programmet endres.
Relokaliserbar lasting: I denne tilnærmingen produserer ikke kompilatoren eller assembleren den egentlige hovedminneadressen . Den produserer de relative adressene.
Dynamic Run-Time loading : I denne tilnærmingen genereres den absolutte adressen til et program når en instruksjon av en kjørbar modul faktisk blir utført. Den er veldig fleksibel, den lastbare modulen / kjørbare modulen kan lastes inn i hvilken som helst region i hovedminnet . Det utførende programmet kan avbrytes i mellom og kan byttes ut til disken og tilbake til hovedminnet denne gangen på en annen hovedminneadresse.
Viktige forskjeller mellom Linker og Loader
- Hovedforskjellen mellom linker og loader er at linkeren genererer den kjørbare filen til et program mens lasteren laster den kjørbare filen hentet fra linkeren til hovedminne for utførelse .
- Linker inntar objektmodulen til et program generert av montøren. Imidlertid inntar lasteren den kjørbare modulen som genereres av linkeren.
- Lenkeren kombinerer alle objektmodulene i et program for å generere kjørbare moduler, og kobler også biblioteksfunksjonen i objektmodulen til innebygde biblioteker i programmeringsspråket på høyt nivå. På de andre hendene allokerer loader plass til en kjørbar modul i hovedminnet.
- Lenkeren kan klassifiseres som koblingsredaktør og dynamisk linker, mens lasteren kan klassifiseres som absolutt laster, flyttbar laster og dynamisk løpestyrer .
Konklusjon:
Linkeren tar objektmodulene til et program fra assembleren og knytter dem sammen for å generere en kjørbar modul i et program. Den kjørbare modulen lastes deretter av lasteren inn i hovedminnet for utførelse.