Et systemkall , i informatikk , indikerer mekanismen som brukes av en prosess på brukernivå eller applikasjonsnivå, for å be om en tjeneste på kjernenivået til operativsystemet til datamaskinen som er i bruk. Den er vanligvis tilgjengelig som en funksjon i de programmeringsspråkene som støtter systemprogrammering (som C-språket ), eller som spesielle monteringsinstruksjoner .
Grunnleggende er overgangen fra brukermodus til kjernemodus gjennom en bestemt instruksjon som er identifisert i fellen .
Av sikkerhetsgrunner kan koden som er iboende for operativsystemtjenestene bare kjøres i kjernemodus , med full tilgang til maskinvaren . Faktisk krever et anrop til kjernen ofte bruk av en spesiell maskinspråkinstruksjon som forårsaker en kontekstbytte av mikroprosessoren ( fra "beskyttet modus" til "supervisormodus", som på Intel og kompatible prosessorer kalles av " Ring 3 "til" Ring 0 "). Dette gjør at operativsystemkjernen kan utføre sensitive operasjoner som å få tilgang til maskinvaren eller minneadministrasjonsenheten , men det medfører mye høyere overhead . Deretter, når oppgaven utført av det påkalte systemanropet er fullført, utfører kontrollen den omvendte prosedyren, fra kjernemodus for å komme tilbake til brukermodus .
Også svært viktig er kallene til brukerbiblioteker ( API ). Anropet til et API er identisk med et kall til en funksjon av selve applikasjonen, i praksis registreres tilstanden til mikroprosessorregistrene og returadressen på stabelen . Derfor vil det være lite overhead selv i operativsystemer med minnebeskyttelse og separasjon av adresserom .
Hovedkategoriene for systemanrop er:
På Posix og lignende systemer er vanlige systemanrop close(),,,,,, og . execlp()fork()kill()open()read()wait()write()
For Windows NT -systemer, se Native API -artikkelen .