Systeemaanroep

Een systeemaanroep, of system call, is een verzoek van een computerprogramma aan het besturingssysteem om een bepaalde taak uit te voeren voor het programma. Alle systeemaanroepen samen vormen de interface (de API) van het besturingssysteem of de kernel.

De systeemaanroepen worden aangeboden via assembler, maar worden vaak aangeroepen vanuit hogere programmeertalen via functies in een bibliotheek (zoals de standaard-C-bibliotheek). Deze functies vormen een wrapper rond de eigenlijke systeemaanroep en worden zelf vaak ook systeemaanroepen genoemd, hoewel dat niet helemaal correct is.

Een systeemaanroep wordt door een programma in gang gezet door middel van een speciale machineinstructie die de besturing aan het besturingssysteem overdraagt. Op x86-systemen wordt hiervoor een interrupt gebruikt. Bij Linux is dit int 0x80, bij DOS int 0x21 en bij Windows int 0x2e.

Voordat een programma de interrupt activeert zet het de argumenten voor de systeemaanroep in registers en/of op de stack. Eventuele returnwaarden voor het programma worden door het besturingssysteem in een register of op de stack gezet.