Syscall

Aus Lowlevel
Version vom 19. Februar 2008, 13:06 Uhr von Jgraef (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Syscalls werden verwendet um Programmen Zugriff auf Funktionen im Kernel zu gewährleisten. Meistens werden Syscalls mithilfe eines Software-Interrupts realisi...)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation,

Syscalls werden verwendet um Programmen Zugriff auf Funktionen im Kernel zu gewährleisten.

Meistens werden Syscalls mithilfe eines Software-Interrupts realisiert. Der aufrufende Prozess füllt entweder die Syscall-Parameter in Arbeitsregister oder legt sie auf den Stack. Meistens wird der Syscall, den der Prozess aufrufen will über eine Nummer als Parameter übergeben. Dann ruft der Prozess einen Software-Interrupt auf, dieser hat normalerweise eine festgelegte Nummer, bei Linux ist das der Interrupt 0x80. Auf neueren CPUs besteht auch die Möglichkeit die Instruktion sysenter zu verwenden, so wie das bei Windows der Fall ist.

Im Kernel wird dann ein Syscallhandler verwendet um die Funktion aufzulösen und die Parameter zu übergeben.