Jämförelsediagram
Grunder för jämförelse | linker | Lastare |
---|---|---|
Grundläggande | Det genererar den körbara modulen i ett källprogram. | Den laddar den körbara modulen till huvudminnet. |
Inmatning | Det krävs som ingång, objektkoden som genereras av en assembler. | Det krävs exekverbar modul genererad av en länkare. |
Fungera | Den kombinerar alla objektmoduler i en källkod för att generera en körbar modul. | Det allokerar adresserna till en körbar modul i huvudminne för körning. |
Typ / Approach | Linkage Editor, Dynamic linker. | Absolut lastning, Relocatable loading och Dynamic Run-time loading. |
Definition av Linker
Assembler genererar objektkoden för ett källprogram och överför det till länken. Länken tar den här objektkoden och genererar den körbara koden för programmet och överlämnas till ladaren.
Språk på hög nivå, program har några inbyggda bibliotek och headerfiler . Källprogrammet kan innehålla vissa biblioteksfunktioner vars definition lagras i de inbyggda biblioteken. Länken länkar denna funktion till de inbyggda biblioteken. Om de inbyggda biblioteken inte hittas informerar den om kompilatorn, och kompilatorn genererar då felet.
Ibland delas de stora programmen in i delprogrammen som kallas moduler . Nu när dessa moduler sammanställs och monteras genereras objektmodulerna i källprogrammet. Länkaren har ansvaret att kombinera / länka alla objektmoduler för att skapa en enda körbar fil i källprogrammet. Vi har två typer av länkar.
Linkage Editor : Det är en länkare som genererar den flyttbara, exekverbara modulen.
Dynamisk Linker : Det försvinner / skjuter upp kopplingen av några externa moduler tills laddmodulen / körbar modul genereras. Här görs länkning under laddningstid eller körtid.
Definition av Loader
Eftersom programmet som måste exekveras måste det för närvarande ligga i datorns huvudminne. Det är ansvaret för lastaren, ett program i ett operativsystem, att ladda den körbara filen / modulen i ett program som genereras av länken till huvudminne för körning. Det allokerar minnesutrymmet till den exekverbara modulen i huvudminnet.
Det finns tre typer av laddningsmetoder:
- Absolut lastning
- Relocatable loading
- Dynamisk körtidslastning
Absolut laddning : Detta tillvägagångssätt laddar programmets exekverbara fil i samma huvudminnesplats varje gång. Men det har några nackdelar som en programmerare måste vara medveten om uppdragsstrategin för att ladda modulerna till huvudminne. Om programmet ska ändras med en del infogning och radering i programmet, måste alla adresser till programmet ändras.
Relocatable loading: I detta tillvägagångssätt producerar kompilatorn eller monteraren inte den verkliga huvudminneadressen . Den producerar de relativa adresserna.
Dynamisk körningstid : I detta tillvägagångssätt genereras den absoluta adressen för ett program när en instruktion av en körbar modul faktiskt exekveras. Det är mycket flexibelt, den laddningsbara modulen / körbar modul kan laddas i någon region i huvudminnet . Exekveringsprogrammet kan avbrytas i mellan och kan bytas ut till skivan och tillbaka till huvudminne denna gång vid en annan huvudminneadress.
Viktiga skillnader mellan Linker och Loader
- Den viktigaste skillnaden mellan linker och loader är att länkenheten genererar den körbara filen i ett program medan lastaren laddar den körbara fil som erhållits från länken till huvudminne för körning .
- Linkern intager objektmodulen i ett program som genereras av monteraren. Loader intager emellertid den körbara modulen som genereras av länken.
- Länken kombinerar alla objektmoduler i ett program för att generera körbara moduler. Den kopplar även bibliotekets funktion i objektmodulen till inbyggda bibliotek på högnivå programmeringsspråket. På andra händer fördelar loader utrymme till en körbar modul i huvudminnet.
- Länkaren kan klassificeras som länkredigerare och dynamisk länkare medan lastaren kan klassificeras som absolutlastare, flyttbar lastare och dynamisk körtidslaster .
Slutsats:
Länkaren tar objektmodulerna i ett program från monteraren och länkar dem tillsammans för att generera en körbar modul i ett program. Den körbara modulen laddas sedan av lastaren i huvudminne för körning.