Systemaufrufe und Kernel-Modus
Kurz: Programme laufen im eingeschränkten User-Modus und dürfen Hardware nicht direkt anfassen. Für Dateien, Netzwerk oder Speicher bitten sie den Kernel über Systemaufrufe (System Calls) um Hilfe.
Genauer: Die CPU kennt Privilegstufen. Der Kernel läuft im privilegierten Modus. Ein Systemaufruf wie read löst einen kontrollierten Wechsel in den Kernel aus (Trap), der Kernel prüft Rechte, führt die Aufgabe aus und kehrt zurück. Das schützt das System vor fehlerhaften oder bösartigen Programmen.
Im Detail
- Beispiele:
open,read,write,fork,exec,mmap,socket. - Kosten: Ein Wechsel kostet einige hundert Nanosekunden. Viele kleine Aufrufe bremsen (daher gepufferte I/O).
- Bibliotheken: C-Funktion
printfruft internwriteauf. - strace: Zeigt alle Systemaufrufe eines Prozesses, wertvoll zur Fehlersuche.
- Interrupts: Hardware unterbricht die CPU; Treiber behandeln sie im Kernel.
- Mikrokernel vs. monolithisch: Linux ist monolithisch, andere lagern Treiber in User-Prozesse aus.
- Sandboxing: seccomp schränkt erlaubte Systemaufrufe ein.
Siehe auch: Prozess-Scheduling, Container-Interna: Namespaces und cgroups