Was ist ein Systemaufruf?
-
Hi.
Ich wollte mal Fragen, ob ich dass nun richtig verstanden habe: Ein Systemaufruf ist ein Aufruf aus einem Prozess heraus, in eine vom OS bereitgestellte API-Funktion, um Aufgaben auszuführen, welche von Prozessen ausserhalb des Kernel-Speichers nicht implementierbar sind, da Software-Interrupts und Hardware IN/OUT nicht verwendbar sind. Der Systemaufruf ist also der Aufruf einer solchen API Funktion?!
Vielen dank für Klarstellung.
-
Ja so ist es.
-
syscall = kernel call = Aufruf einer Funktion die im Kernel implementiert ist.
Das heisst jetzt nicht notwendigerweise dass diese nur im Kernel implementiert sein kann.
Und Zugriff auf diverse Ports/Interrupts/... ist auch nicht der einzige Grund warum etwas im Kernel landet. Denk nur mal an die Datenstrukturen die zur Verwaltung der ganzen Systemresourcen nötig sind, zur Verwaltung der Prozesse selbst etc.In den letzten Jahren geht der Trend aber eher dahin möglichst viele dieser Funktionen in Usermode-Prozesse mit speziellen Berechtigungen auszulagern. Wenn der Kernel es erlaubt ist es nämlich gar kein Problem auch von einem Usermode-Prozess aus direkt auf diverse Hardware-Ports etc. zuzugreifen.