Diferența cheie – Linker vs Loader
Un program de calculator este folosit pentru a oferi instrucțiuni computerului. Este scris folosind un limbaj de programare specific. Limbaje de programare precum C, Java sunt limbaje de programare de nivel în alt și sunt înțelese de oameni, dar nu de computer. Prin urmare, un program de nivel în alt este convertit în limbaj automat folosind un traducător de limbi. Un program scris folosind un limbaj de nivel în alt este un cod sursă. După conversie, codul tradus se numește cod obiect. Linker-ul ș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șierele 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 cheie dintre Linker și Loader.
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 programare de nivel în alt. Ele sunt ușor de înțeles și de citit de către programator. Aceste limbi urmează o sintaxă similară cu limba engleză. Câteva exemple de limbaje de nivel în alt sunt Java, C și Python. Un program scris folosind un limbaj de programare de nivel în alt este cunoscut sub numele de cod sursă, fișier sursă sau program sursă. Extensia codului sursă depinde de limbajul cu 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 computer. Prin urmare, codul sursă ar trebui convertit într-un format ușor de înțeles de mașină folosind un traducător de limbă. Poate fi un compilator sau un interpret. Codul tradus este cunoscut ca cod obiect. Codul obiect este în limbajul mașinii. Este format din zerouri și o 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 conectează codul obiect cu fișiere suplimentare, cum ar fi fișierele antet și creează un fișier executabil cu extensia.exe. Este posibil ca programul să fi folosit funcții încorporate. Funcționalitățile pentru acele funcții încorporate se află în fișierele antet. Conform exemplului explicat mai sus, codul obiect care este Test.obj este adăugat cu fișierele de antet necesare folosind Linker. Acesta creează un nou fișier cunoscut numit Test.exe. Este un fișier executabil. Prin urmare, este executabil de computer.
Ce este Loader?
Un program care ar trebui să fie executat trebuie să fie plasat în memorie. Linker-ul conectează codul obiect și fișierele antet și scoate fișierul executabil. Încărcătorul este software-ul de sistem care încarcă fișierul executabil generat de linker în memoria principală. 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 bibliotecilor.
Figura 01: Ordinea în care se încarcă codul sursă în memorie
Încărcarea unui program implică mai mulți pași. Aceasta implică citirea în memorie a conținutului fișierului executabil care conține instrucțiunile programului ș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 trecând controlul codului de program încărcat. Sistemele informatice speciale, cum ar fi sistemele încorporate, în general, nu au încărcătoare. Codul se execută direct de către ROM.
Care este relația dintre linker și loader?
Ieșirea Linker-ului ajunge la Loader
Care este diferența dintre linker și Loader?
Linker vs Loader |
|
Linker este software-ul care conectează codul obiect cu fișiere suplimentare, cum ar fi fișierele 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 | |
Linkerul preia rezultatul traducătorului de limbă, care este codul obiect. | Încărcătorul preia rezultatul din linker, care este fișierul executabil. |
Funcționalitate | |
Linker leagă codul obiect și fișierele antet și scoate fișierul executabil. | Încărcătorul încarcă fișierul executabil obținut din linker în memoria principală. |
Rezumat – Linker vs Loader
Linker și Loader sunt două componente software legate de execuția programului. Acest articol a discutat diferența dintre Linker și Loader. Linker este software-ul care leagă codul obiect cu fișiere suplimentare, cum ar fi fișierele 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.