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.
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 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 | 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]- ^ "syscalls(2) - Linux manual page".
- ^ OpenBSD (14. 9. 2013). "System call names (kern/syscalls.c)". BSD Cross Reference.
- ^ NetBSD (17. 10. 2013). "System call names (kern/syscalls.c)". BSD Cross Reference.
- ^ "FreeBSD syscalls.c, the list of syscall names and IDs".
- ^ 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.