Lastaren är en avgörande del av systemprogramvaran som ansvarar för att ladda program i minnet och förbereda dem för körning. Dess huvudfunktion kan delas upp i flera viktiga steg:
1. Lastning: Detta är den primära funktionen. Lastaren läser programmets körbara fil (t.ex. en ".exe" -fil på Windows, en ELF -fil på Linux) från sekundär lagring (som en hårddisk eller SSD) till huvudminnet (RAM).
2. Länkning: Många program består av flera moduler eller bibliotek. Lastaren löser referenser mellan dessa moduler, vilket säkerställer att varje modul kan komma åt de funktioner och data som definieras i andra. Detta kan involvera dynamiskt länka delade bibliotek vid körning. Detta steg säkerställer att all nödvändig kod och data finns på plats.
3. Relocation: Lastaren justerar adresserna i programkoden för att återspegla de faktiska minnesplatserna där programmet kommer att laddas. Eftersom operativsystemet kan ladda program på olika minnesadresser varje gång de körs måste lastaren göra dessa justeringar för att säkerställa att programmet körs korrekt oavsett var det placeras i minnet.
4. Tilldelning: Lastaren fördelar det nödvändiga minnesutrymmet för programmets kod, data och stack. Detta innebär att man begär minne från operativsystemets minneshanterare och reserverar lämplig mängd utrymme.
5. Initialisering: Innan exekveringen kan lastaren utföra några initialiseringsuppgifter, till exempel att ställa in programmets register för att peka på rätt minnesplatser, initialisera globala variabler eller hantera programargument.
6. Överföring av kontroll: Slutligen överför lastaren kontrollen till programmets ingångspunkt, vilket gör att programmet kan börja sin körning. Detta är ofta funktionen "huvud" i C eller C ++ -program.
I huvudsak fungerar lastaren som en bro mellan programmet lagrat på disken och det löpande programmet i minnet och hanterar alla nödvändiga steg för att göra programmet körbart. Olika operativsystem och arkitekturer kan implementera lastare på olika sätt, men de grundläggande funktionerna förblir konsekventa.