Sistemski poziv

S Wikipedije, slobodne enciklopedije
Idi na navigaciju Idi na pretragu
Pregled intefejsa sistemskih poziva kod Linux kernela koji upravlja komunikacijom između različitih komponenti i korisničkog prostora

Sistemski poziv jest zahtjev od računarskog programa prema kernelu operativnog sistema. To može uključivati zahtjeve povezane s hardverom (na primjer, pristup tvrdom disku), stvaranje i izvršavanje novih procesa i komunikaciju s integralnim uslugama kernela, je raspoređivanje procesa. Sistemski pozivi služe za komunikaciju između procesa i operativnog sistema.

U većini sistema sistemski pozivi mogu se obavljati samo iz procesa korisničkog prostora, dok u nekim sistemima kao što su OS/360 i njegovi nasljednici, privilegovani sistemski kod ujedno izdaje i sistemske pozive.

Biblioteka kao posrednik[uredi | uredi izvor]

Općenito, sistemi pružaju biblioteku ili API koji se nalazi između običnih programa i operativnog sistema. U sistemima sličnim Unixu taj API je obično dio implementacije C biblioteke (libc), poput glibc, koja pruža wrapper funkcije za sistemske pozive. U Windows NT sistemim taj API je dio Native API-ja, koji se nalazi u ntdll.dll biblioteci. To je nedokumentovani API koji se koristi implementacijama uobičajenog Windows API-ja i izravno koriste neke sistemske programe na Windows-u.

Primjeri[uredi | uredi izvor]

Na Unix, Unixu sličnim i ostalim operativnim sistemima koji odgovaraju POSIX-u, popularni sistemski pozivi su open, read, write, close, wait, exec, fork, exit i kill. Mnogi moderni operativni sistemi imaju stotine sistemskih poziva. Na primjer, Linux i OpenBSD imaju preko 300 različitih poziva,[1][2] NetBSD ima blizu 500,[3] FreeBSD ima preko 500,[4] Windows 7 ih ima blizu 700.[5]

Reference[uredi | uredi izvor]

  1. ^ "syscalls(2) - Linux manual page".
  2. ^ OpenBSD (2013-09-14). "System call names (kern/syscalls.c)". BSD Cross Reference.
  3. ^ NetBSD (2013-10-17). "System call names (kern/syscalls.c)". BSD Cross Reference.
  4. ^ "FreeBSD syscalls.c, the list of syscall names and IDs".
  5. ^ Author: Mateusz "j00ru" Jurczyk (2017-11-05). "Windows WIN32K.SYS System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)".

Vanjski linkovi[uredi | uredi izvor]