Sie sind wirklich zwei Begriffe für die gleiche Sache.
In der Unix-Welt bezeichnet der Begriff Dynamic Linker die Komponente des Betriebssystems, die dynamische Bibliotheken zur Laufzeit verknüpft, während ein Loader auf den meisten anderen Systemen sowohl das Laden als auch das Verknüpfen dynamischer Bibliotheken programmiert.
Da das Laden von Bibliotheken unter Unix-ähnlichen Systemen durch eine separate Komponente (ld.so
am häufigsten) erfolgt, wird ein dynamischer Linker als etwas anderes als der Programmlader angesehen. Compiler fügen in der Regel einige Stub-Codes am Anfang der ausführbaren Datei ein, um ld.so
zu laden, und ld.so
würde weiterhin den Rest der abhängigen Bibliotheken laden, bevor main
aufgerufen wird. Während das Programm im Kernel geladen wird, erfolgt die Verknüpfung dynamischer Bibliotheken normalerweise im Benutzerbereich.
Dies ist anders als in Windows, wo sowohl das Laden von Programmen als auch das Verknüpfen von dynamischen Bibliotheken im Kernel-Modus erfolgt.
http://StackOverflow.com/Questions/311882/what-do-statisch-linked-and-dynamically-linked-mean/311889#311889 – Vijay
@peter thanks! es half. –