Contents
Beim statischen Verknüpfen werden alle im Programm verwendeten Bibliotheksmodule in das endgültige ausführbare Image kopiert. Dies wird vom Linker durchgeführt und ist der letzte Schritt des Kompilierungsprozesses. Der Linker kombiniert Bibliotheksroutinen mit dem Programmcode, um externe Referenzen aufzulösen und ein ausführbares Bild zu erzeugen, das zum Laden in den Speicher geeignet ist. Daher legt das Betriebssystem beim Laden des Programms eine einzelne Datei in den Speicher ab, die den ausführbaren Code und die Daten enthält. Diese statisch verknüpfte Datei enthält sowohl das aufrufende Programm als auch das aufgerufene Programm.
Dynamisches Linken besteht darin, Code in ein Formular zu kompilieren und zu verknüpfen, das sowohl zur Laufzeit als auch zur Linkzeit von Programmen geladen werden kann. Beim dynamischen Linken werden die Namen der externen Bibliotheken (gemeinsam genutzten Bibliotheken) in der endgültigen ausführbaren Datei platziert, während das eigentliche Binden zur Laufzeit stattfindet, wenn sowohl die ausführbare Datei als auch die Bibliotheken im Speicher abgelegt werden. Dynamisches Verknüpfen ermöglicht es mehreren Programmen, eine einzelne Kopie eines ausführbaren Moduls zu verwenden.
Dynamic Linking verwendet eine spezielle Variante eines Bibliotheksformats, die als Dynamic Linking Library (DLL) bezeichnet wird und eine gängige Methode ist, um Anwendungen und Subsysteme in kleinere Teile zu unterteilen, die kompiliert, getestet, wiederverwendet, verwaltet, bereitgestellt und installiert werden können separat. Dieser Ansatz ist bei Microsoft-Betriebssystemen sehr beliebt und wurde entwickelt, um die Größe der ausführbaren Anwendungsdateien und auch ihrer Laufzeitabbilder zu begrenzen.
Lesen Sie auch: Unterschied zwischen Linker und Loader
VERGLEICHSGRUNDLAGE | STATISCHE VERKNÜPFUNG | DYNAMISCHE VERKNÜPFUNG |
Beschreibung | Beim statischen Verknüpfen werden alle im Programm verwendeten Bibliotheksmodule in das endgültige ausführbare Image kopiert. | Beim Dynamic Linking werden die Namen der externen Bibliotheken oder Shared Libraries im Speicher abgelegt. Durch dynamisches Verknüpfen können viele Programme eine einzelne Kopie des ausführbaren Moduls verwenden. |
Gemeinsam genutzte Module | Wenn sich beim statischen Linken eines der externen Programme geändert hat, müssen sie neu kompiliert und neu gelinkt werden, sonst werden die Änderungen nicht in der vorhandenen ausführbaren Datei widergespiegelt. | Beim Dynamic Linking können gemeinsam genutzte Module aktualisiert und neu kompiliert werden. |
Die Ausführung | Statisches Linken wird von Programmen durchgeführt, die als Linker bezeichnet werden, als letzter Schritt beim Kompilieren eines Programms. Linker werden auch Link-Editoren genannt. | Die dynamische Verknüpfung wird zur Laufzeit vom Betriebssystem durchgeführt. |
Ladezeit | Statisch verknüpftes Programm benötigt jedes Mal eine konstante Ladezeit, wenn es zur Ausführung in den Speicher geladen wird. | Beim dynamischen Linken kann die Ladezeit reduziert werden, wenn der Code der gemeinsam genutzten Bibliothek bereits im Speicher vorhanden ist. |
Kompatibilitätsfaktor | In statisch verknüpften Programmen ist der gesamte Code in einem einzigen ausführbaren Modul enthalten. Daher treten nie Kompatibilitätsprobleme auf. | Dynamisch verknüpfte Programme sind auf eine kompatible Bibliothek angewiesen. |
Geschwindigkeit | Programme, die statisch verknüpfte Bibliotheken verwenden, sind normalerweise schneller als Programme, die gemeinsam genutzte Bibliotheken verwenden. | Programme, die gemeinsam genutzte Bibliotheken verwenden, sind normalerweise langsamer als Programme, die statisch verknüpfte Bibliotheken verwenden. |
Größe des ausführbaren Programms | Statisch verknüpfte Dateien sind erheblich größer, da externe Programme in die ausführbaren Dateien integriert sind. | Beim dynamischen Verknüpfen wird nur eine Kopie der gemeinsam genutzten Bibliothek im Speicher gehalten. Dadurch wird die Größe ausführbarer Programme erheblich reduziert, wodurch Arbeitsspeicher und Speicherplatz gespart werden. |
Dateigröße | Statistisch verknüpfte Dateien sind größer. | Dynamisch verknüpfte Dateien sind kleiner. |
Haben Sie sich jemals gefragt, warum Sie manchmal bei Einkäufen Ihre PIN eingeben müssen und…
Haben Sie sich jemals gefragt, warum Ärzte manchmal eine CT-Untersuchung und in anderen Fällen ein…
Haben Sie sich jemals gefragt, warum manche Menschen von ihrem "Lohn" sprechen, während andere ihr…
Seide oder Baumwolle: Ein ewiger Wettstreit um Weichheit und Komfort 🧵🌿 Haben Sie sich jemals…
Haben Sie sich jemals gefragt, warum manche Radfahrer scheinbar mühelos Steigungen erklimmen, während andere ins…
Staubsaugen - eine lästige Pflicht, die niemand gerne erledigt. 🧹 Doch in der Welt der…