Diferența între linker și încărcător

Diferența cheie - Linker vs Încărcător
 

Un program de calculator este folosit pentru a da instrucțiuni computerului. Este scris folosind un limbaj de programare specific. Limbile de programare, cum ar fi C, Java, sunt limbi de programare de nivel înalt și sunt de înțeles de către oameni, dar nu de calculator. Prin urmare, un program la nivel înalt este convertit în limbajul mașinii folosind un traducător de limbă. Un program scris folosind un limbaj de nivel înalt este un cod sursă. După conversie, codul tradus se numește cod obiect. Linkerul și încărcătorul sunt două programe software care sunt utilizate pentru execuția programului. Acest articol discută diferența dintre Linker și Loader. Linker este software-ul care leagă codul obiect cu fișiere suplimentare, cum ar fi fișiere antet și creează un fișier executabil cu extensia .exe. Încărcătorul este software-ul de sistem care încarcă fișierul executabil generat de linker în memoria principală. Asta este diferența cheie între Linker și Loader.

CUPRINS

1. Prezentare generală și diferență cheie
2. Ce este Linker
3. Ce este Loader
4. Relația dintre Linker și Loader
5. Comparație de la o parte la alta - Linker vs Loader în formă tabulară
6. rezumat

Ce este Linker?

Un program de calculator este un set de instrucțiuni date unui computer pentru a efectua o anumită sarcină. Un program de calculator poate fi scris folosind un limbaj de programare. Majoritatea limbajelor de programare sunt programe de nivel înalt. Ele sunt ușor de înțeles și pot fi citite de către programator. Aceste limbi urmează o sintaxă similară cu limba engleză. Câteva exemple de limbi de nivel înalt sunt Java, C și Python. Un program scris folosind un limbaj de programare la nivel înalt este cunoscut sub numele de cod sursă, fișier sursă sau program sursă. Extensia codului sursă depinde de limba pe care a fost dezvoltată. Dacă codul sursă este scris în C ++, atunci extensia fișierului este .cpp. Dacă codul sursă este scris în Python, extensia este .py.

Chiar și codul sursă este de înțeles de către programator; nu este de înțeles de calculator. Prin urmare, codul sursă ar trebui să fie transformat într-un format ușor de înțeles de către un mecanism folosind un traducător de limbă. Poate fi un compilator sau un interpret. Codul tradus este cunoscut sub numele de cod obiect. Codul obiect se află în limba mașinii. Se compune din zerouri și o singură dată. Computerul poate înțelege direct codul obiect. Are extensia .obj. Dacă există un cod sursă ca Test.c, acesta trece prin compilator și codul convertit devine Test.obj.

Linker este software-ul care leagă codul obiect cu fișiere suplimentare, cum ar fi fișiere antet și creează un fișier executabil cu extensia .exe. Programul ar fi putut utiliza funcții încorporate. Funcționalitățile pentru aceste funcții încorporate sunt în fișierele antet. În conformitate cu exemplul explicat mai sus, codul obiect care este Test.obj este adăugat cu fișierele antet necesare folosind link-ul. Creează un nou fișier cunoscut numit Test.exe. Acesta este un fișier executabil. Prin urmare, este executabil de către computer.

Ce este Loader?

Un program care trebuie executat trebuie plasat în memorie. Linkerul leagă codul obiect și fișierele antet și emite fișierul executabil. Încărcătorul este software-ul de sistem care încarcă fișierul executabil generat de linker în memoria principală. El alocă spațiul de memorie modulului executabil din memoria principală. Prin urmare, un încărcător este o parte a sistemului de operare care este responsabil pentru încărcarea programelor și a bibliotecilor.

Figura 01: Ordine în care codul sursă se încarcă în memorie

Încărcarea unui program implică mai mulți pași. Aceasta implică citirea conținutului fișierului executabil care conține instrucțiunea programului în memorie și, de asemenea, efectuarea sarcinilor de pregătire necesare pentru a rula fișierul executabil. Odată ce încărcarea este finalizată, sistemul de operare pornește programul prin trecerea controlului la codul program încărcat. Sistemele informatice speciale, cum ar fi sistemele încorporate, în general, nu au încărcătoare. Codul se execută direct de ROM.

Care este relația dintre Linker și Loader?

  • Ieșirea lincului se duce la încărcător.

Care este diferența dintre linker și Loader?

Linker vs Loader

Linker este software-ul care leagă codul obiect cu fișiere suplimentare, cum ar fi fișiere antet și creează un fișier executabil cu extensia .exe. Încărcătorul este software-ul de sistem care încarcă fișierul executabil generat de linker în memoria principală.
 Intrare
Linker-ul ia rezultatul traductorului de limbă, care este codul obiect. Încărcătorul scoate ieșirea din linker, care este fișierul executabil.
Funcționalitate
Linkerul leagă codul obiect și fișierele antet și emite fișierul executabil. Încărcătorul încarcă fișierul executabil câștigat de linker în memoria principală.

rezumat - Linker vs Încărcător

Linker și Loader sunt două componente software legate de execuția programului. Acest articol a discutat diferența dintre linker și încărcător. Linker este software-ul care leagă codul obiect cu fișiere suplimentare, cum ar fi fișiere antet și creează un fișier executabil cu extensia .exe. Încărcătorul este software-ul de sistem care încarcă fișierul executabil generat de linker în memoria principală. Aceasta este diferența dintre Linker și Loader.

Referinţă:

1. "Loader (computing)", Wikipedia, Fundația Wikimedia, 28 februarie 2018. Disponibil aici