Hoe gegevens tot uitvoering komen
Systeemsoftware
Wanneer een muziekspeler een geluidsbestand opent, stuurt die niet zelf de opslagchips aan, decodeert die geen ruwe toetsenbordsignalen en beslist die niet wanneer de CPU beschikbaar is. Iets anders regelt dat allemaal. De speler vraagt het gewoon.
Twee soorten programma’s
Een applicatie helpt iemand iets te doen: een document bewerken, op internet surfen, muziek afspelen of een begroting maken.
Systeemsoftware ondersteunt de computer zelf en laat die werken. Het besturingssysteem is het belangrijkste voorbeeld: het beheert gedeelde middelen en biedt algemene diensten die applicaties kunnen aanvragen.
Zet ze op elkaar en elk verzoek gaat langs dezelfde ladder naar beneden. De Engelse labels hieronder betekenen achtereenvolgens persoon, applicatie, besturingssysteem en hardware:
person
application
operating system
hardware
Stel dat je een bestand opent. De applicatie vraagt het besturingssysteem er bij naam om. Het besturingssysteem zoekt het bestand, controleert of het verzoek is toegestaan en coördineert het werk aan de opslag. De applicatie hoeft het opslagstation nooit zelf aan te sturen.
Dat is de hele truc. Elke laag biedt iets eenvoudigs aan de laag erboven en handelt de ingewikkelde details eronder af. “Open dit bestand” blijft dezelfde vraag, of het bestand nu op een intern opslagstation, een geheugenstick of een computer in een ander land staat.
Een tekenapp wil je afbeelding opslaan. Wat gebeurt er?
Door deze lagen kunnen applicaties om vaste diensten vragen, terwijl systeemsoftware de onderliggende machine regelt. Daardoor wordt niet elke applicatie overdraagbaar naar elk besturingssysteem: applicaties blijven afhankelijk van de diensten en formaten die hun doelsysteem biedt.
Eén stap in de keten ontbreekt nog. Mensen schrijven broncode die bijna als Engels leest. CPU’s voeren machine-instructies uit die daar totaal niet op lijken. Hierna: wat gebeurt er daartussen?