Betriebssystem(1)
Der Chef im Computer - verwaltet Hardware, koordiniert Programme und stellt dem Benutzer eine bedienbare Oberfläche bereit.
Sammlung von Programmen, die es ermöglichen, den Rechner zu betreiben und Anwendungen darauf auszuführen.
Verwaltung von:
- Speicherverwaltung - RAM-Verteilung an Programme
- Prozessverwaltung - Programme starten/stoppen
- Dateiverwaltung - Ordner- und Datei-Organisation
- Geräteverwaltung - Hardware-Kommunikation
- Rechteverwaltung - Benutzer und Berechtigungen
Nach Betriebsart:
- Batch - Stapelverarbeitung
- Dialog - Interaktive Bedienung
- Realzeit - Zeitkritische Systeme
Nach Benutzern:
- Einbenutzer - Ein Nutzer (MS-DOS)
- Mehrbenutzer - Mehrere Nutzer (Linux, Windows Server)
Desktop: Windows 10/11, macOS, Linux
Server: Windows Server, Linux, Unix
Mobil: Android, iOS
Embedded: FreeRTOS, Windows IoT
Das Betriebssystem versteckt die komplexe Hardware hinter einfachen Befehlen - Programme müssen nicht wissen, wie eine Festplatte funktioniert.
Moderne OS sind meist multitasking (mehrere Programme gleichzeitig) und multiuser (mehrere Benutzer).
Kernel-Typen
Der Kernel (Systemkern) ist der absolut notwendige Teil des BS — der Prozess mit direktem Hardwarezugriff. Es gibt verschiedene Philosophien:
| Typ | Umfang | Beispiel | Vorteile / Nachteile |
|---|---|---|---|
| Mikrokernel | nur Hardwarezugriff + Basis-Prozess-/Speicherverwaltung, Rest in anderen Prozessen | — | ✅ modular, fault-tolerant (Fehler isoliert) / ❌ mehr Kontext-Wechsel |
| Monolithischer Kernel | voller Umfang (Prozess, Speicher, Datei, Device alles im Kernel) | Linux, UNIX | ✅ schnell (weniger Aufrufe) / ❌ großer, fehleranfällig |
| Hybridkernel | Mischung (Kernel-Kern klein, aber mehr Treiber/Services direkt) | Windows, macOS | ✅ Kompromiss (Performance + Stabilität) |
Boot-Sequenz (POST, Bootloader, Kernel)
Das Booten (Bootstrapping) ist das Henne-Ei-Problem: Um das BS zu laden, bräuchte man schon ein BS! Gelöst durch Firmware und einen Bootloader:
- Power On Self Test (POST): Firmware testet Basis-Hardware (RAM, CPU, Speicher).
- Bootloader suchen: Firmware liest die Partitionstabelle (MBR / GPT) → findet aktive Partition.
- Bootloader laden: Bootloader (z.B. GRUB unter Linux, Bootmgr unter Windows) liest die Boot-Konfiguration.
- Kernel laden: Bootloader lädt den Kernel in den RAM und springt zum Entry Point.
- Kernel lädt BS: Der Kernel initialisiert die Hardware, startet System-Dämonen, gibt Kontrolle an die Shell / GUI.
| Phase | Wer macht's | Hardware-Zugriff |
|---|---|---|
| POST | Firmware (im ROM) | direkt |
| Bootloader | Firmware → Bootloader | direkt (noch im 16-Bit/32-Bit-Modus) |
| Kernel | Bootloader → Kernel | direkt (Kernel schaltet auf 64-Bit um, aktiviert virtuelle Speicheradressierung) |
| BS/Apps | Kernel | über Systemaufrufe (System-Call) |
Systemaufrufe (System Calls)
Programme können die Hardware nicht direkt steuern (wäre unsicher/chaotisch). Sie müssen über den Kernel gehen:
Anwendungsprogramm (User-Mode)
│ printf("Hallo")
↓ (Systemaufruf: write)
Kernel (Kernel-Mode) — hat Hardwarezugriff
│ schreibt zum Monitor
↓
Bildschirm
Ablauf:
- Programm ruft eine Bibliotheksfunktion auf (z.B.
write()in C). - Diese setzt die Register mit Parametern & Systemaufruf-Nummer.
- Interrupt auslösen (z.B.
int 0x80in x86 /syscallin x86-64). - CPU springt in Kernel (Kernel-Mode).
- Kernel prüft Berechtigung & führt aus.
- Kernel springt zurück zu Programm (User-Mode).
→ Das BS kontrolliert damit, dass Programme sich nicht gegenseitig / die Hardware zerstören.