Lader sind entscheidende Komponenten der Systemsoftware, die für das Laden von Programmen in den Speicher und die Vorbereitung für die Ausführung verantwortlich sind. Es gibt verschiedene Arten, die auf verschiedene Weise kategorisiert sind:
Kategorisierung durch Lademethode:
* Absolute Lader: Bei diesen Ladern muss der Programmierer den genauen Speicherort angeben, an dem das Programm geladen werden soll. Sie sind einfach, aber unflexibel und in modernen Systemen nicht häufig verwendet. Der Umzug wird vom Programmierer manuell durchgeführt.
* Umlaufbare Lader: Diese Lader verarbeiten die Aufgabe, Speicheradressen zur Ladezeit zuzuweisen. Der Code des Programms wird ohne spezifische Speicheradressen geschrieben, und der Loader weist Adressen basierend auf dem verfügbaren Speicher zu. Dies ist weitaus flexibler als die absolute Belastung. Der Umzug wird automatisch vom Loader behandelt.
* Dynamische Lader: Diese Lader verschieben das Laden von Programmmodulen, bis sie während der Ausführung tatsächlich benötigt werden. Dies verbessert die Effizienz, indem nur notwendige Teile eines Programms geladen werden, anstatt alles im Voraus zu laden. Häufig in Betriebssystemen, die die dynamische Verknüpfung unterstützen. Dies umfasst Aspekte wie Lazy Loading und Just-in-Time (JIT) -Kompilation.
* Bootstrap Loader: Dies sind die anfänglichen Lader, die den Ladevorgang starten. Sie sind in der Regel klein und einfach und verantwortlich für das Laden des Betriebssystemkernels in den Speicher und die Initiierung seiner Ausführung. Oft wohnen in ROM (schreibgeschützte Speicher).
Kategorisierung durch Verknüpfen:
* Linker (oft als Teil der breiteren "Lader" -Familie angesehen): Diese kombinieren separat kompilierte Programmmodule zu einer einzelnen ausführbaren Datei, bevor die Arbeit des Loaders beginnt. Sie lösen externe Referenzen zwischen Modulen. Der Loader lädt dann die verknüpfte ausführbare Datei.
Andere Kategorisierungen und Überlegungen:
* Overlay -Lader: Wird für Programme verwendet, die größer als verfügbarer Speicher sind. Sie laden und laden verschiedene Teile des Programms nach Bedarf in den Speicher. Dies ist eine ältere Technik, die aufgrund virtueller Speicherfunktionen jetzt weniger verbreitet ist.
* hardwarespezifische Lader: Einige Lader sind möglicherweise tief in bestimmte Hardware -Architekturen integriert und bearbeiten die spezielle Speicherverwaltung oder I/A -Operationen.
Es ist wichtig zu beachten, dass diese Kategorien sich nicht immer gegenseitig ausschließen. Beispielsweise könnte ein lockerer Lader auch ein dynamischer Lader sein. Die spezifischen Funktionen und Fähigkeiten eines Laders hängen stark vom Betriebssystem und der Hardwarearchitektur ab.