I UNIX-liknande operativsystem identifieras systemsamtal med unika nummer. Dessa kallas
Systemanropsnummer eller ibland bara
systemnummer . De är i huvudsak index i ett systemsamtal i kärnan. När ett program ringer ett systemsamtal (t.ex. `open ',' läst ',' skriv ',' gaffel ') använder det inte direkt funktionsnamnet; Istället använder det motsvarande systemsamtalnummer. Kärnan använder sedan detta nummer för att leta upp rätt funktion för att köra.
Här är en uppdelning av deras betydelse:
* Effektivitet: Att använda siffror är mer effektivt än att använda strängar (som funktionsnamn). Antalet uppslag är mycket snabbare än stränguppslag.
* Abstraktion: De ger en abstraktionsnivå. Systemsamtalgränssnittet är konsekvent oavsett de specifika implementeringsdetaljerna för varje systemsamtal.
* portabilitet (med varningar): Medan systemanropen * numren * själva inte nödvändigtvis bärbara över olika Unix-liknande system (t.ex. Linux, MacOS, BSD), är * namnen * på systemsamtal ofta (även om deras beteende kan ha subtila skillnader). Huvudfiler ger en kartläggning mellan de symboliska namnen och siffrorna för ett specifikt system. Du skulle i allmänhet använda de symboliska namnen i din kod och lita på kompilatorn och länken för att lösa dem till rätt systemsamtal.
* Säkerhet: Direkt användning av systemanropsnummer erbjuder mindre skydd än att använda ett välmeterat bibliotek eller API; Felaktig användning kan leda till systemkrascher eller säkerhetssårbarheter. Därför är det nästan alltid alltid att använda de symboliska namnen.
Hur de används: Ett program använder i allmänhet inte direkt systemanropsnummer. Istället använder det ett systemsamtalsgränssnitt (ofta tillhandahållet av ett C -bibliotek), som hanterar översättningen från funktionsnamn till nummer. Huvudfilerna (som `unistd.h` i c) definiera symboliska konstanter för varje systemsamtal, vilket gör att programmerare kan skriva bärbar kod med hjälp av dessa symboliska namn. Kompilatorn och länken tar hand om att kartlägga dessa symboler till lämpliga systemanropsnummer under kompilering och länkning.
Sammanfattningsvis är systemanropsnummer lågnivåidentifierare som används av kärnan för att skicka systemsamtal, som erbjuder effektivitet och ett lager av abstraktion för programmerare som annars skulle behöva arbeta direkt med kärngränssnitt, en uppgift som generellt lämnas till biblioteksförfattare och själva operativsystemet.