Syscall — Änderungen 6021 → 6599

Zeile 4: Zeile 4:
 
Der aufrufende Prozess füllt entweder die Syscall-Parameter in Prozessorregister oder legt sie auf den Stack. Meistens wird der Syscall, den der Prozess aufrufen will, über eine Nummer als Parameter, z.B. über das Register eax, übergeben.
 
Der aufrufende Prozess füllt entweder die Syscall-Parameter in Prozessorregister oder legt sie auf den Stack. Meistens wird der Syscall, den der Prozess aufrufen will, über eine Nummer als Parameter, z.B. über das Register eax, übergeben.
  
−
Anschließend [[Syscall#Auslösen des Syscalls | löst der Prozess einen Syscall aus]].
+
Anschließend löst der Prozess einen Syscall aus.
  
 
== Auslösen des Syscalls ==
 
== Auslösen des Syscalls ==
 
Meistens werden Syscalls mithilfe eines Software-[[Interrupt]]s realisiert. Der auszulösende Softwareinterrupt hat normalerweise eine fest kodierte Nummer. Linux verwendet beispielsweise den Interrupt 0x80. In manchen Prozessoren sind spezielle Instruktionen für ein performanteres Auslösen von Syscalls vorgesehen. Beispielsweise unterstützen neuere AMD-Prozessoren die ''syscall''-Instruktion und neuere Intel-Prozessoren die ''[[sysenter]]''-Instruktion.
 
Meistens werden Syscalls mithilfe eines Software-[[Interrupt]]s realisiert. Der auszulösende Softwareinterrupt hat normalerweise eine fest kodierte Nummer. Linux verwendet beispielsweise den Interrupt 0x80. In manchen Prozessoren sind spezielle Instruktionen für ein performanteres Auslösen von Syscalls vorgesehen. Beispielsweise unterstützen neuere AMD-Prozessoren die ''syscall''-Instruktion und neuere Intel-Prozessoren die ''[[sysenter]]''-Instruktion.
  
−
Anschließend befindet sich der Prozessor im Kernelmodus, und der Kernel übernimmt [[Syscall#Behandlung des Syscalls | die Behandlung des Syscalls]].
+
Anschließend befindet sich der Prozessor im Kernelmodus, und der Kernel übernimmt.
  
 
== Behandlung des Syscalls ==
 
== Behandlung des Syscalls ==