Wo befindet sich die System call Schnittstelle?
Zwischen Kernel- und User Space
Was ist ein Systemcall
System Calls sind Teil der Programmierschnittstelle, die ein Betriebssystem Anwendungsprogrammen anbietet, um dessen Services zu nutzen.
erfordern einen Wechsel aus dem User Mode in den Kernel Mode. Dieser Wechsel wird durch eine Trap Instruction ausgelöst
System call ablauf
Dies ermöglicht Anwendungen, auf Betriebssystemressourcen zuzugreifen und privilegierte Operationen sicher auszuführen.
Beispiele für System Calls, die Prozesse verwalten
fork()
Es erzeugt ein exaktes Duplikat des laufenden Prozesses:
Parent und Child laufen voneinander entkoppelt weiter. Parent kann Ausführung des Kindes mit wait(2) abwarten.
System calls für Filemanagement
Unterschied zwischen User Mode und Kernel Mode
User mode:
Kernel Mode:
Warum existieren verschiedene Betriebsmodi (CPU) ?
In modernen Betriebssystemen sind Anwendungen und das Betriebssystem voneinander getrennt.
Das Betriebssystem läuft im Kernelmodus mit umfassendem System- und Hardwarezugriff, während Anwendungen im Benutzermodus agieren, eingeschränkten Zugriff auf Systemressourcen haben und dafür kontrollierte APIs verwenden.
Wie findet der Übergang vom User in Kernel Modus statt?
Der Wechsel vom Kernel-Mode zum User-Mode ist unproblematisch, da die Rechte eingeschränkt werden, ohne Sicherheitsbedenken. Das Betriebssystem initiiert diesen Übergang, wenn es der Anwendungsprozess CPU-Zeit zuweist.
Im Gegensatz dazu ist der Übergang vom User-Mode zum Kernel-Mode kritischer. Ein Anwendungsprozess darf nicht direkt auf Kernel-Rechte zugreifen, sondern benötigt dazu einen Systemaufruf (System Call).