Lastare är avgörande komponenter i systemprogramvaran, ansvariga för att ladda program i minnet och förbereda dem för körning. Det finns flera typer, kategoriserade på olika sätt:
Kategorisering med laddningsmetod:
* Absolutlastare: Dessa lastare kräver att programmeraren ska ange den exakta minnesplatsen där programmet ska laddas. De är enkla men oflexibla och används inte vanligtvis i moderna system. Flyttning sker manuellt av programmeraren.
* RELOCATABLE LOADERS: Dessa lastare hanterar uppgiften att tilldela minnesadresser vid lasttid. Programmets kod är skriven utan specifika minnesadresser, och lastaren tilldelar adresser baserade på tillgängligt minne. Detta är mycket mer flexibelt än absolut belastning. Flyttning hanteras automatiskt av lastaren.
* dynamiska lastare: Dessa lastare skjuter upp belastningen av programmoduler tills de faktiskt behövs under körningen. Detta förbättrar effektiviteten genom att endast ladda nödvändiga delar av ett program, snarare än att ladda allt på förhand. Vanligt i operativsystem som stöder dynamisk koppling. Detta inkluderar aspekter som Lazy Loading och Just-in-Time (JIT) sammanställning.
* bootstrap -lastare: Dessa är de initiala lastarna som startar lastningsprocessen. De är vanligtvis små och enkla, ansvariga för att ladda operativsystemets kärna i minnet och initiera dess körning. Bor ofta i ROM (skrivskyddad minne).
Kategorisering genom att länka:
* länkar (ofta betraktas som en del av den bredare "Loader" -familjen): Dessa kombinerar separat sammanställda programmoduler till en enda körbar fil innan lastarens arbete börjar. De löser externa referenser mellan moduler. Lastaren laddar sedan den länkade körbara.
Andra kategoriseringar och överväganden:
* Overlay Loaders: Används för program som är större än tillgängligt minne. De laddar och lossar olika delar av programmet i minnet efter behov. Detta är en äldre teknik som är mindre vanlig nu på grund av virtuella minnesfunktioner.
* Hårdvaruspecifika lastare: Vissa lastare kan vara djupt integrerade med specifika hårdvaruarkitekturer, hantera specialiserad minneshantering eller I/O -operationer.
Det är viktigt att notera att dessa kategorier inte alltid är ömsesidigt exklusiva. Till exempel kan en flyttbar lastare också vara en dynamisk lastare. De specifika funktioner och funktioner för en lastare beror starkt på operativsystemet och hårdvaruarkitekturen.