Διαφορά μεταξύ Linker και Loader

Πίνακας περιεχομένων:

Διαφορά μεταξύ Linker και Loader
Διαφορά μεταξύ Linker και Loader

Βίντεο: Διαφορά μεταξύ Linker και Loader

Βίντεο: Διαφορά μεταξύ Linker και Loader
Βίντεο: JCB 3CX PRO - The Most Powerful Backhoe Loader - FULL REVIEW (subtitles) 2024, Ιούλιος
Anonim

Βασική διαφορά – Linker vs Loader

Ένα πρόγραμμα υπολογιστή χρησιμοποιείται για να δώσει οδηγίες στον υπολογιστή. Είναι γραμμένο χρησιμοποιώντας μια συγκεκριμένη γλώσσα προγραμματισμού. Οι γλώσσες προγραμματισμού όπως η C, η Java είναι γλώσσες προγραμματισμού υψηλού επιπέδου και είναι κατανοητές από τον άνθρωπο αλλά όχι από τον υπολογιστή. Επομένως, ένα πρόγραμμα υψηλού επιπέδου μετατρέπεται σε γλώσσα μηχανής χρησιμοποιώντας έναν μεταφραστή γλώσσας. Ένα πρόγραμμα γραμμένο με χρήση γλώσσας υψηλού επιπέδου είναι ένας πηγαίος κώδικας. Μετά τη μετατροπή, ο μεταφρασμένος κώδικας ονομάζεται κώδικας αντικειμένου. Ο σύνδεσμος και ο φορτωτής είναι δύο προγράμματα λογισμικού που χρησιμοποιούνται για την εκτέλεση προγράμματος. Αυτό το άρθρο εξετάζει τη διαφορά μεταξύ Linker και Loader. Το Linker είναι το λογισμικό που συνδέει τον κώδικα αντικειμένου με πρόσθετα αρχεία όπως αρχεία κεφαλίδας και δημιουργεί ένα εκτελέσιμο αρχείο με επέκταση.exe. Ο φορτωτής είναι το λογισμικό συστήματος που φορτώνει το εκτελέσιμο αρχείο που δημιουργείται από τον σύνδεσμο στην κύρια μνήμη. Αυτή είναι η βασική διαφορά μεταξύ Linker και Loader.

Τι είναι το Linker;

Ένα πρόγραμμα υπολογιστή είναι ένα σύνολο οδηγιών που δίνονται σε έναν υπολογιστή για να εκτελέσει μια συγκεκριμένη εργασία. Ένα πρόγραμμα υπολογιστή μπορεί να γραφτεί χρησιμοποιώντας μια γλώσσα προγραμματισμού. Οι περισσότερες γλώσσες προγραμματισμού είναι προγραμματισμού υψηλού επιπέδου. Είναι εύκολα κατανοητά και ευανάγνωστα από τον προγραμματιστή. Αυτές οι γλώσσες ακολουθούν μια σύνταξη παρόμοια με την αγγλική γλώσσα. Μερικά παραδείγματα γλωσσών υψηλού επιπέδου είναι η Java, η C και η Python. Ένα πρόγραμμα γραμμένο χρησιμοποιώντας μια γλώσσα προγραμματισμού υψηλού επιπέδου είναι γνωστό ως πηγαίος κώδικας, αρχείο προέλευσης ή πρόγραμμα πηγής. Η επέκταση του πηγαίου κώδικα εξαρτάται από τη γλώσσα με την οποία αναπτύχθηκε. Εάν ο πηγαίος κώδικας είναι γραμμένος σε C++, τότε η επέκταση αρχείου είναι.cpp. Εάν ο πηγαίος κώδικας είναι γραμμένος σε Python, η επέκταση είναι.py.

Ακόμη και ο πηγαίος κώδικας είναι κατανοητός από τον προγραμματιστή. δεν είναι κατανοητό από τον υπολογιστή. Επομένως, ο πηγαίος κώδικας θα πρέπει να μετατραπεί σε μορφή κατανοητή από μηχανή χρησιμοποιώντας μεταφραστή γλώσσας. Μπορεί να είναι μεταγλωττιστής ή διερμηνέας. Ο μεταφρασμένος κώδικας είναι γνωστός ως κώδικας αντικειμένου. Ο κωδικός αντικειμένου είναι στη γλώσσα μηχανής. Αποτελείται από μηδενικά και μια φορά. Ο υπολογιστής μπορεί να κατανοήσει άμεσα τον κώδικα του αντικειμένου. Έχει την επέκταση.obj. Εάν υπάρχει ένας πηγαίος κώδικας ως Test.c, περνά από τον μεταγλωττιστή και ο κώδικας μετατροπής γίνεται Test.obj.

Το Linker είναι το λογισμικό που συνδέει τον κώδικα αντικειμένου με πρόσθετα αρχεία, όπως αρχεία κεφαλίδας και δημιουργεί ένα εκτελέσιμο αρχείο με επέκταση.exe. Το πρόγραμμα μπορεί να χρησιμοποιούσε ενσωματωμένες λειτουργίες. Οι λειτουργίες για αυτές τις ενσωματωμένες λειτουργίες βρίσκονται στα αρχεία κεφαλίδας. Σύμφωνα με το παραπάνω επεξηγημένο παράδειγμα, ο κωδικός αντικειμένου που είναι Test. Το obj προστίθεται με τα απαραίτητα αρχεία κεφαλίδας χρησιμοποιώντας το Linker. Δημιουργεί ένα νέο αρχείο που ονομάζεται Test.exe. Είναι ένα εκτελέσιμο αρχείο. Επομένως, είναι εκτελέσιμο από τον υπολογιστή.

Τι είναι το Loader;

Ένα πρόγραμμα που πρέπει να εκτελεστεί πρέπει να τοποθετηθεί στη μνήμη. Ο σύνδεσμος συνδέει τον κώδικα αντικειμένου και τα αρχεία κεφαλίδας και εξάγει το εκτελέσιμο αρχείο. Ο φορτωτής είναι το λογισμικό συστήματος που φορτώνει το εκτελέσιμο αρχείο που δημιουργείται από τον σύνδεσμο στην κύρια μνήμη. Κατανέμει το χώρο μνήμης στην εκτελέσιμη μονάδα της κύριας μνήμης. Επομένως, ένας φορτωτής είναι ένα μέρος του λειτουργικού συστήματος που είναι υπεύθυνο για τη φόρτωση προγραμμάτων και βιβλιοθηκών.

Διαφορά μεταξύ Linker και Loader
Διαφορά μεταξύ Linker και Loader

Εικόνα 01: Σειρά με την οποία ο πηγαίος κώδικας φορτώνεται στη μνήμη

Η φόρτωση ενός προγράμματος περιλαμβάνει πολλά βήματα. Περιλαμβάνει την ανάγνωση των περιεχομένων του εκτελέσιμου αρχείου που περιέχει τις οδηγίες του προγράμματος στη μνήμη και επίσης την εκτέλεση των απαραίτητων εργασιών προετοιμασίας για την εκτέλεση του εκτελέσιμου αρχείου. Μόλις ολοκληρωθεί η φόρτωση, το λειτουργικό σύστημα ξεκινά το πρόγραμμα περνώντας τον έλεγχο στον φορτωμένο κωδικό προγράμματος. Τα ειδικά συστήματα υπολογιστών, όπως τα ενσωματωμένα συστήματα, γενικά δεν διαθέτουν φορτωτές. Ο κώδικας εκτελείται απευθείας από τη ROM.

Ποια είναι η σχέση μεταξύ του Linker και του Loader;

Η έξοδος του Linker πηγαίνει στο Loader

Ποια είναι η διαφορά μεταξύ Linker και Loader;

Linker vs Loader

Το Linker είναι το λογισμικό που συνδέει τον κώδικα αντικειμένου με πρόσθετα αρχεία, όπως αρχεία κεφαλίδας και δημιουργεί ένα εκτελέσιμο αρχείο με επέκταση.exe. Το πρόγραμμα φόρτωσης είναι το λογισμικό συστήματος που φορτώνει το εκτελέσιμο αρχείο που δημιουργείται από τον σύνδεσμο στην κύρια μνήμη.
Εισαγωγή
Ο σύνδεσμος λαμβάνει την έξοδο του μεταφραστή γλώσσας, που είναι ο κωδικός του αντικειμένου. Το πρόγραμμα φόρτωσης παίρνει την έξοδο από το σύνδεσμο, που είναι το εκτελέσιμο αρχείο.
Λειτουργικότητα
Ο σύνδεσμος συνδέει τον κώδικα αντικειμένου και τα αρχεία κεφαλίδας και εξάγει το εκτελέσιμο αρχείο. Το πρόγραμμα φόρτωσης φορτώνει το εκτελέσιμο αρχείο που αποκτήθηκε από τον σύνδεσμο στην κύρια μνήμη.

Σύνοψη – Linker vs Loader

Το Το Linker και το Loader είναι δύο στοιχεία λογισμικού που σχετίζονται με την εκτέλεση του προγράμματος. Αυτό το άρθρο εξέτασε τη διαφορά μεταξύ του Linker και του Loader. Το Linker είναι το λογισμικό που συνδέει τον κώδικα αντικειμένου με πρόσθετα αρχεία όπως αρχεία κεφαλίδας και δημιουργεί ένα εκτελέσιμο αρχείο με επέκταση.exe. Ο φορτωτής είναι το λογισμικό συστήματος που φορτώνει το εκτελέσιμο αρχείο που δημιουργείται από τον σύνδεσμο στην κύρια μνήμη. Αυτή είναι η διαφορά μεταξύ Linker και Loader.

Συνιστάται: