Ključna razlika – Linker vs Loader
Kompjuterski program se koristi za davanje instrukcija računaru. Napisan je posebnim programskim jezikom. Programski jezici kao što su C, Java su programski jezici visokog nivoa i razumljivi su ljudima, ali ne i kompjuterima. Stoga se program visokog nivoa konvertuje u mašinski jezik pomoću prevodioca jezika. Program napisan koristeći jezik visokog nivoa je izvorni kod. Nakon konverzije, prevedeni kod se naziva objektni kod. Linker i loader su dva softverska programa koja se koriste za izvršavanje programa. Ovaj članak govori o razlici između Linkera i Loadera. Linker je softver koji povezuje objektni kod sa dodatnim datotekama kao što su datoteke zaglavlja i kreira izvršnu datoteku sa ekstenzijom.exe. Učitavač je sistemski softver koji učitava izvršnu datoteku koju je generirao linker u glavnu memoriju. To je ključna razlika između Linkera i Loadera.
Šta je Linker?
Kompjuterski program je skup instrukcija datih računaru da izvrši određeni zadatak. Računarski program se može napisati pomoću programskog jezika. Većina programskih jezika je programiranje visokog nivoa. Oni su lako razumljivi i čitljivi od strane programera. Ti jezici slijede sintaksu sličnu engleskom jeziku. Neki primjeri jezika visokog nivoa su Java, C i Python. Program napisan koristeći programski jezik visokog nivoa poznat je kao izvorni kod, izvorni fajl ili izvorni program. Proširenje izvornog koda ovisi o jeziku na kojem je razvijen. Ako je izvorni kod napisan u C++, onda je ekstenzija datoteke.cpp. Ako je izvorni kod napisan u Pythonu, ekstenzija je.py.
Čak je i izvorni kod razumljiv za programera; kompjuter nije razumljiv. Stoga bi izvorni kod trebao biti konvertovan u mašinski razumljiv format pomoću prevodioca jezika. To može biti kompajler ili interpreter. Prevedeni kod je poznat kao objektni kod. Objektni kod je na mašinskom jeziku. Sastoji se od nula i jednom. Računar može direktno razumjeti objektni kod. Ima ekstenziju.obj. Ako postoji izvorni kod kao Test.c, on prolazi kroz kompajler i konvertovani kod postaje Test.obj.
Linker je softver koji povezuje objektni kod sa dodatnim datotekama kao što su datoteke zaglavlja i kreira izvršni fajl sa ekstenzijom.exe. Program je možda koristio ugrađene funkcije. Funkcije za te ugrađene funkcije nalaze se u datotekama zaglavlja. Prema gore objašnjenom primjeru, objektni kod koji je Test.obj se dodaje sa potrebnim datotekama zaglavlja pomoću Linkera. Kreira novu datoteku poznatu pod nazivom Test.exe. To je izvršna datoteka. Stoga je izvršna od strane računara.
Šta je Loader?
Program koji treba da se izvrši mora biti smešten u memoriju. Linker povezuje objektni kod i datoteke zaglavlja i izlazi izvršnu datoteku. Učitavač je sistemski softver koji učitava izvršnu datoteku koju je generirao linker u glavnu memoriju. On dodeljuje memorijski prostor izvršnom modulu u glavnoj memoriji. Dakle, učitavač je dio operativnog sistema koji je odgovoran za učitavanje programa i biblioteka.
Slika 01: Redoslijed učitavanja izvornog koda u memoriju
Učitavanje programa uključuje nekoliko koraka. To uključuje čitanje sadržaja izvršne datoteke koja sadrži programsku instrukciju u memoriju i također obavljanje potrebnih zadataka pripreme za pokretanje izvršne datoteke. Nakon što je učitavanje završeno, operativni sistem pokreće program prenoseći kontrolu na učitani programski kod. Specijalni kompjuterski sistemi kao što su Embedded sistemi uglavnom nemaju učitavače. Kod se izvršava direktno preko ROM-a.
Kakav je odnos između Linkera i Loadera?
Izlaz Linkera ide u Loader
Koja je razlika između Linkera i Loadera?
Linker vs Loader |
|
Linker je softver koji povezuje objektni kod sa dodatnim fajlovima kao što su fajlovi zaglavlja i kreira izvršni fajl sa ekstenzijom.exe. | Učitavač je sistemski softver koji učitava izvršnu datoteku koju je generirao linker u glavnu memoriju. |
Unos | |
Povezivač uzima izlaz prevodioca jezika, a to je objektni kod. | Učitavač uzima izlaz iz linkera, koji je izvršni fajl. |
Funkcionalnost | |
Povezivač povezuje objektni kod i datoteke zaglavlja i izlazi izvršni fajl. | Učitavač učitava izvršnu datoteku dobijenu od linkera u glavnu memoriju. |
Sažetak – Linker vs Loader
Linker i Loader su dvije softverske komponente koje se odnose na izvršavanje programa. Ovaj članak govori o razlici između linkera i učitavača. Linker je softver koji povezuje objektni kod sa dodatnim datotekama kao što su datoteke zaglavlja i kreira izvršnu datoteku sa ekstenzijom.exe. Učitavač je sistemski softver koji učitava izvršnu datoteku koju je generirao linker u glavnu memoriju. To je razlika između Linkera i Loadera.