Begriff
Betriebssystembau
Warum wichtig?
Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.
Das Betriebssystem (OS) ist der Diktator des Computers. Es entscheidet, wer wann rechnen darf (CPU Scheduling). Es entscheidet, wer wo speichern darf (Memory Management). Es schützt Programme voreinander ("Sandboxing"). OS-Bau ist die Konstruktion dieses Diktators. Vom ersten Assembler-Befehl beim Booten bis zur grafischen Oberfläche. Es ist die komplexeste Software, die Menschen je gebaut haben (Linux Kernel: 30 Mio. Zeilen Code).
Merksatz: Die Disziplin der Entwicklung von Betriebssystemkernen und Systemdiensten, inklusive Scheduling, Speicherverwaltung, Dateisystemen und Hardware-Abstraktion.
Du wirst wahrscheinlich nie ein ganzes OS bauen (außer als Hobby).
Aber du musst verstehen, wie es funktioniert, um performante Apps zu schreiben.
"Warum ist meine App langsam?"
-> "Weil ich zu viele Context Switches verursache."
-> "Weil ich Blocking I/O mache, statt Async I/O."
-> "Weil ich ständig Page Faults erzeuge."
1. Microkernel vs. Monolith
Der ewige Streit (Tanenbaum vs. Torvalds).
- Monolith (Linux, Windows): Alles (Treiber, Filesystem, Netzwerk) läuft im Kernel Mode. Schnell, aber ein Fehler im Druckertreiber crasht den ganzen PC.
- Microkernel (Minix, L4, Zircon/Fuchsia): Nur das Nötigste (IPC, Scheduling) im Kernel. Treiber laufen als normale Prozesse. Sicherer, aber langsamer (wegen IPC-Overhead).
2. Virtualisierung
Moderne OS sind Hypervisoren. Container (Docker) nutzen OS-Features (Namespaces, Cgroups), um dem Prozess vorzugaukeln, er sei allein auf der Welt. OS-Bau ist heute oft "Cloud-Plattform-Bau".
1. Capability-based Security (seL4)
Modernster OS-Bau geht weg von einfachen User-Rechten (Root/User). Systeme wie seL4 nutzen Capabilities. Ein Programm hat kein Recht, eine Datei zu öffnen, sondern es besitzt ein "Ticket" (Capability) für dieses spezifische Objekt. seL4 ist das erste Betriebssystem der Welt, das mathematisch bewiesen korrekt ist. Man hat mit Tools wie Isabelle/HOL bewiesen, dass der C-Code exakt der Spezifikation entspricht. Es gibt keine Buffer Overflows, keine Null-Pointer-Derefenzierung und keine Eskalationspfade im Kernel. Solche Systeme finden Einsatz in Kampfjets oder medizinischen Geräten.
2. NUMA-aware Scheduling
Auf modernen Servern mit 128 Kernen ist nicht jeder RAM-Riegel gleich schnell erreichbar. NUMA (Non-Uniform Memory Access) bedeutet: CPU 1 hat ihren "eigenen" Speicher direkt neben sich. Will sie auf den Speicher von CPU 2 zugreifen, muss das Signal über einen langsamen Bus. Ein Profi-OS-Scheduler (wie der im aktuellen Linux) muss "NUMA-aware" sein. Er versucht, einen Prozess und seine Daten physisch auf dem gleichen CPU-Sockel zu halten. Ignoriert das OS diese Topologie, bricht die Performance von SQL-Datenbanken um bis zu 50% ein.
3. eBPF: Das OS wird programmierbar
Früher war der Kernel eine statische Wand. Wollte man ein neues Netzwerk-Feature, musste man den Kernel neu kompilieren. Mit eBPF (extended Berkeley Packet Filter) kann man nun kleine Programme (in C geschrieben) während der Laufzeit in den Kernel laden. Diese Programme laufen in einer extrem sicheren Virtual Machine direkt im Kernel-Space (JIT-kompiliert). Das revolutioniert Monitoring (Cilium), Sicherheit und Networking. Das OS ist kein starrer "Diktator" mehr, sondern ein flexibler Micro-Service-Host, den man zur Laufzeit um neue Logik erweitern kann, ohne einen Reboot zu riskieren.
Quick-Check
Wie fängt man an?
Mit einem Bootloader. Ein Stück Assembler-Code im ersten Sektor der Festplatte, das den Kernel lädt.Interrupts?
Das Nervensystem. Wenn du eine Taste drückst, "unterbricht" die Hardware die CPU. Das OS muss sofort reagieren (Interrupt Handler), ohne den laufenden Prozess zu zerstören.POSIX?
Portable Operating System Interface. Der Standard (API), an den sich Unix (Linux, macOS) hält. Windows macht sein eigenes Ding (Win32 API).