Järjestelmäkutsu
Wikipedia
Järjestelmäkutsu eli käyttöjärjestelmäkutsu ("systeemikutsu") on ohjelmoinnissa sovellusten käyttämä matalan tason mekanismi käyttöjärjestelmän tarjoamien palveluiden suorittamiseksi.
Intel-arkkitehtuuripohjaisissa x86-Linux-järjestelmissä järjestelmäkutsuja voidaan käyttää kahdella tavalla. Perinteinen tapa on käyttää keskeytystä 80h (tai 0x80, desimaaleina 128), jolloin järjestelmäkutsun numero laitetaan rekisteriin eax ja funktion parametrit rekistereihin ebx - edx. Uudempi ja nopeampi tapa on käyttää SYSENTER/SYSEXIT-käskyjä.[1]
MS-DOS-tyyppisissä käyttöjärjestelmissä taas käytetään keskeytystä 21h-järjestelmäkutsuun.
[muokkaa] Esimerkki
Esimerkki on laadittu assembly-konekielellä Linux-järjestelmään. Siinä pyydetään käyttöjärjestelmää suorittamaan palvelu sys_close.
mov eax, 6 ; järjestelmäkutsu sys_close(unsigned int fd), sulkee tiedostokahvan mov ebx, 1 ; tiedostokahva, 1 = stdout int 80h ; tee järjestelmäkutsu
[muokkaa] Lähteet
- ↑ Re: Intel P6 vs P7 system call performance Jasper Spaans. Viitattu 19.1.2008. (englanniksi)
[muokkaa] Aiheesta muualla
- Linuxin järjestelmäkutsut - Linuxin kernel 2.2:n järjestelmäkutsujen luettelo
- Miten järjestelmäkutsut toimivat
- Unix assembly language programming

