Was ist der Unterschied zwischen Linker Loader und Compiler?

Der Hauptunterschied zwischen Linker Loader und Compiler ist der Linker kombiniert eine oder mehrere vom Compiler generierte Objektdateien zu einer einzigen ausführbaren Datei. Ein Loader legt die Programme in den Speicher und bereitet sie für die Ausführung vor, während der Compiler den Quellcode in Objektcode konvertiert.

Ein Computerprogramm ist eine Sammlung von Anweisungen, die eine bestimmte Aufgabe ausführen, wenn der Computer sie ausführt. Eine Systemsoftware ist eine Art Computerprogramm, das einer anderen Software eine Plattform bietet. Linker, Loader und Compiler sind drei Systemsoftware, die der Computerprogrammierung zugeordnet sind.

Wichtige Bereiche

1. Was ist ein Compiler?
     - Definition, Funktionalität
2. Was ist ein Linker?
     - Definition, Funktionalität
3. Was ist ein Loader?
     - Definition, Funktionalität
4. Was ist der Unterschied zwischen Linker Loader und Compiler?
     - Vergleich der wichtigsten Unterschiede

Schlüsselbegriffe

Compiler, Linker, Loader

Was ist ein Compiler?

Ein Programm enthält Anweisungen, um eine bestimmte Aufgabe auszuführen. Es wird auch als Quellcode bezeichnet. Der Programmierer kann den Quellcode verstehen, aber die CPU kann ihn nicht verstehen. Daher ist es notwendig, den Quellcode in ein maschinenverständliches Format umzuwandeln.

Abbildung 1: Compiler

Ein Compiler ist eine spezielle Software, die in diesem Prozess verwendet wird. Es konvertiert den Quellcode in Objektcode. Dieser Objektcode ist ein Zwischencode. Die CPU kann es nicht direkt ausführen.

Was ist ein Linker?

Nach dem Konvertieren des Quellcodes in den Objektcode führt der Linker die Verknüpfungsaufgabe aus. Sie benötigt eine oder mehrere vom Compiler generierte Objektdateien und kombiniert sie, um eine ausführbare Datei zu erzeugen.

Abbildung 2: Linker

Außerdem werden die Objektcodes mit Bibliotheken kombiniert. Wenn in einem C-Programm beispielsweise die Funktion sqrt () zur Berechnung der Quadratwurzel einer Zahl vorhanden ist, verknüpft der Linker das Programm mit der Mathematikbibliothek. Schließlich kann die CPU die generierte ausführbare Datei lesen und verstehen. Daher kann die CPU diese Datei ausführen, um die im Programm definierte Aufgabe auszuführen. 

Was ist ein Loader?

Ein Lader lokalisiert Programme im Speicher und bereitet sie für die Ausführung vor. Es ist eine wichtige Komponente beim Starten eines Programms. Dazu gehören Aufgaben wie das Lesen des Inhalts der ausführbaren Datei und das Ablegen der Datei in den Arbeitsspeicher. Außerdem führt es die erforderlichen Aufgaben aus, um die ausführbare Datei für die Ausführung vorzubereiten. Nach dem Laden startet das Betriebssystem das Programm, indem die Steuerung an den geladenen Programmcode übergeben wird.

Abbildung 3: Zusammenstellung

Die meisten Betriebssysteme unterstützen Ladeprogramme zum Laden von Programmen. Bei den meisten Systemen befindet sich der Loader im Speicher, während bei anderen, die virtuellen Speicher unterstützen, der Loader in einem pagablen Speicherbereich liegt.

Unterschied zwischen Linker Loader und Compiler

Definition

Ein Linker ist ein Computer-Hilfsprogramm, das eine oder mehrere von einem Compiler generierte Objektdateien verwendet und diese in einer einzigen ausführbaren Datei zusammenfasst. Ein Loader ist ein Teil eines Betriebssystems, das für das Laden von Programmen in den Speicher verantwortlich ist. Ein Compiler ist eine Software, die in einer Programmiersprache (Quellcode) geschriebenen Computercode in eine andere Programmiersprache (Zielcode) umwandelt. Dies erklärt also den Hauptunterschied zwischen Linker Loader und Compiler.

Funktionalität

Darüber hinaus kombiniert ein Linker mehrere Objektcodes und verknüpft sie mit Bibliotheken. Inzwischen bereitet ein Loader die ausführbare Datei für die Ausführung vor, während ein Compiler den Quellcode in Objektcode umwandelt. Daher ist dies der Unterschied zwischen Linker Loader und Compiler hinsichtlich der Funktionalität. 

Fazit

Kurz gesagt, der Unterschied zwischen Linker Loader und Compiler besteht darin, dass ein Linker eine oder mehrere vom Compiler generierte Objektdateien zu einer einzigen ausführbaren Datei kombiniert und ein Loader die Programme in den Speicher legt und sie für die Ausführung vorbereitet, während ein Compiler den Quellcode in konvertiert Objektcode.

Referenz:

1. "Linker (Computing)". Wikipedia, Wikimedia Foundation, 6. Oktober 2018, hier verfügbar.
2. „Loader (Computing)“. Wikipedia, Wikimedia Foundation, 10. Oktober 2018, hier verfügbar.
3. „Compiler“. Wikipedia, Wikimedia Foundation, 9. Oktober 2018, hier verfügbar.

Bildhöflichkeit:

1. "Idealer Compiler" (CC BY-SA 3.0) über Commons Wikimedia
2. „Linker“ von Qef - Eigene Arbeit von Uploader, basierend auf der Anordnung eines Bitmap-Äquivalents von Orderud (Public Domain) über Commons Wikimedia
3. “Screenshot-turbo51.com 2016-01-14 18-44-16" Von անհայտ - Aho, Sethi, Ullman, Compiler: Prinzipien, Techniken und Werkzeuge, Addison-Wesley, 1986. ISBN 0-201-10088- 6 (CC BY-SA 4.0) über Commons Wikimedia