Der Lader ist ein entscheidender Bestandteil der Systemsoftware, die für das Laden von Programmen in den Speicher und die Vorbereitung für die Ausführung verantwortlich ist. Die Hauptfunktion kann in mehrere wichtige Schritte unterteilt werden:
1. Laden: Dies ist die primäre Funktion. Der Loader liest die ausführbare Datei des Programms (z. B. eine `.exe` -Datei unter Windows, eine ELF -Datei unter Linux) aus dem Sekundärspeicher (wie einer Festplatte oder einer SSD) in den Hauptspeicher (RAM).
2. Verknüpfung: Viele Programme bestehen aus mehreren Modulen oder Bibliotheken. Der Loader löst Referenzen zwischen diesen Modulen auf und stellt sicher, dass jedes Modul die in anderen definierten Funktionen und Daten korrekt zugreifen kann. Dies kann die dynamische Verknüpfung gemeinsamer Bibliotheken zur Laufzeit beinhalten. Dieser Schritt stellt sicher, dass alle erforderlichen Code und Daten vorhanden sind.
3. Umzug: Der Loader passt die Adressen im Programmcode an, um die tatsächlichen Speicherorte zu widerspiegeln, an denen das Programm geladen wird. Da das Betriebssystem bei jedem Ausführen Programme an verschiedenen Speicheradressen laden kann, muss der Lader diese Anpassungen vornehmen, um sicherzustellen, dass das Programm korrekt ausgeführt wird, unabhängig davon, wo es in Speicher platziert ist.
4. Zuweisung: Der Loader bereitstellt den erforderlichen Speicherplatz für den Code, die Daten und den Stapel des Programms. Dies beinhaltet das Anfordern von Speicher aus dem Speichermanager des Betriebssystems und der Reservierung der entsprechenden Speicherplatz.
5. Initialisierung: Vor der Ausführung kann der Lader einige Initialisierungsaufgaben ausführen, z. B. die Einrichtung der Register des Programms so auf die richtigen Speicherorte, die Initialisierung globaler Variablen oder die Bearbeitung von Programmargumenten.
6. Kontrollübertragung: Schließlich überträgt der Lader die Kontrolle über den Einstiegspunkt des Programms, sodass das Programm seine Ausführung beginnen kann. Dies ist oft die "Main` -Funktion in C- oder C ++ - Programmen.
Im Wesentlichen fungiert der Lader als Brücke zwischen dem auf der Festplatte gespeicherten Programm und dem laufenden Programm im Speicher und bearbeitet alle erforderlichen Schritte, um das Programm ausführbar zu machen. Verschiedene Betriebssysteme und Architekturen können Lader auf verschiedene Weise implementieren, die grundlegenden Funktionen bleiben jedoch konsistent.