Sistemski poziv

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, te raspoređivanje procesa. Sistemski pozivi služe za komunikaciju između procesa i operativnog sistema.

Pregled intefejsa sistemskih poziva kod Linux kernela koji upravlja komunikacijom između različitih komponenti i korisničkog prostora

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

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 sistemima taj API je dio Native API-ja, koji se nalazi u ntdll.dll biblioteci. To je nedokumentovani API koji se koristi u implementacijama uobičajenog Windows API-ja i izravno koriste neke sistemske programe na Windowsu.

Primjeri uredi

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

  1. ^ "syscalls(2) - Linux manual page".
  2. ^ OpenBSD (14. 9. 2013). "System call names (kern/syscalls.c)". BSD Cross Reference.
  3. ^ NetBSD (17. 10. 2013). "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 (5. 11. 2017). "Windows WIN32K.SYS System Call Table (NT/2000/XP/2003/Vista/2008/7/8/10)". Arhivirano s originala, 28. 11. 2019. Pristupljeno 28. 11. 2019.

Vanjski linkovi uredi