Der Linux-Kernel – verständlich und gründlich erklärt

Wie der Linux-Kernel wirklich funktioniert

Vom Systemaufruf bis zur Seitentabelle: Diese Seite erklärt den Aufbau des Linux-Kernels Schritt für Schritt – mit Blockschaltbildern, interaktiven Abläufen und direkten Verweisen in den Quellcode.

Bezieht sich auf Linux 6.18 (LTS)

Der Kernel auf einen Blick

Die Subsysteme des Linux-Kernels User Space Anwendungen Shell & Dienste C-Bibliothek Kernel Space Systemaufruf-Schnittstelle Prozesse &Scheduler kernel/ Speicher-verwaltung mm/ VFS &Dateisysteme fs/ Netzwerk-Stack net/ IPC ipc/ Block-Schicht Sicherheit (LSM) Gerätetreiber Architekturcode: Einsprünge · Interrupts · Kontextwechsel · Seitentabellen · Boot Hardware CPU RAM Datenträger Netzwerkkarte Peripherie

Systemaufruf-Schnittstelle

Der einzige reguläre Weg aus dem User Space in den Kernel. Einige hundert Systemaufrufe bilden die stabile Schnittstelle zu allen Anwendungen – Linus Torvalds’ oberste Regel lautet: „We don’t break user space.“

Quellverzeichnis: arch/*/entry/, kernel/sys.c Zum Kapitel 4: Systemaufrufe →

Prozessverwaltung & Scheduler

Erzeugt und beendet Prozesse und Threads (beide sind für den Kernel „Tasks“) und entscheidet, welcher Task wann auf welcher CPU läuft. Zentrale Datenstruktur ist struct task_struct.

Quellverzeichnis: kernel/, kernel/sched/ Zum Kapitel 5: Prozesse & Threads →

Speicherverwaltung

Verwaltet den physischen Arbeitsspeicher in Seiten (meist 4 KiB), richtet für jeden Prozess einen virtuellen Adressraum ein, behandelt Seitenfehler und hält den Page Cache, der Dateiinhalte im RAM zwischenspeichert.

Quellverzeichnis: mm/ Zum Kapitel 7: Speicherverwaltung →

Virtuelles Dateisystem (VFS)

Eine einheitliche Abstraktionsschicht über allen Dateisystemen. open(), read() und write() funktionieren dadurch gleich – egal ob die Datei auf ext4, Btrfs, NFS oder in einem virtuellen Dateisystem wie /proc liegt.

Quellverzeichnis: fs/ Kapitel 10: VFS & Dateisysteme (in Vorbereitung)

Netzwerk-Stack

Implementiert Sockets und die Protokolle von Ethernet über IP bis TCP/UDP, dazu Routing, Paketfilterung (Netfilter) und schnelle Paketverarbeitung mit XDP.

Quellverzeichnis: net/ Kapitel 13: Netzwerk-Stack (in Vorbereitung)

Interprozesskommunikation

Mechanismen, mit denen Prozesse Daten austauschen oder sich synchronisieren: Pipes, Signale, System-V- und POSIX-IPC, Shared Memory und Futexe.

Quellverzeichnis: ipc/, kernel/signal.c, kernel/futex/ Kapitel 14: Interprozesskommunikation (in Vorbereitung)

Block-Schicht

Vermittelt zwischen Dateisystemen und Blockgeräten wie SSDs oder Festplatten. Sie sammelt, sortiert und verteilt I/O-Anfragen (blk-mq) auf die Hardware-Warteschlangen.

Quellverzeichnis: block/ Kapitel 11: Block-I/O (in Vorbereitung)

Sicherheit (LSM)

Das Linux Security Module Framework setzt an vielen Stellen im Kernel Prüfpunkte (Hooks). Module wie SELinux, AppArmor oder Landlock entscheiden dort zusätzlich zu den klassischen Dateirechten über Zugriffe.

Quellverzeichnis: security/ Kapitel 15: Sicherheit & Isolation (in Vorbereitung)

Gerätetreiber

Der mit Abstand größte Teil des Quellcodes. Treiber steuern konkrete Hardware an und melden sich über das Gerätemodell bei den passenden Subsystemen (Block, Netzwerk, Eingabe, Grafik …) an. Viele lassen sich als Module zur Laufzeit laden.

Quellverzeichnis: drivers/ Kapitel 12: Gerätetreiber (in Vorbereitung)

Architekturspezifischer Code

Alles, was von der CPU-Architektur abhängt: Einsprungpunkte für Systemaufrufe und Interrupts, Kontextwechsel, Aufbau der Seitentabellen, früher Bootcode. Linux unterstützt rund 20 Architekturen, darunter x86, ARM64 und RISC-V.

Quellverzeichnis: arch/ Kapitel 8: Interrupts & verzögerte Arbeit (in Vorbereitung)

Vereinfachtes Blockschaltbild. Die Farben werden auf der gesamten Seite einheitlich für die jeweiligen Subsysteme verwendet.

Für wen ist das?

Für Informatik-Studierende, die Betriebssystem-Konzepte aus der Vorlesung am realen System nachvollziehen wollen. Jedes Kapitel beginnt mit einer kurzen Einsteiger-Zusammenfassung, danach geht es in die Tiefe.

So ist jedes Kapitel aufgebaut

Kurz gesagt
Die Kernidee in wenigen Sätzen – ohne Vorwissen.
Diagramme
Blockschaltbilder und schrittweise Abläufe zeigen Strukturen und Datenflüsse.
Tiefer eintauchen
Aufklappbare Abschnitte mit Details für Fortgeschrittene.
Im Quellcode
Verweise auf die passenden Stellen im Kernel-Quellcode.
Selbst ausprobieren
Befehle, mit denen du das Gelernte auf deinem eigenen System beobachtest.

Kapitel

  1. Kapitel 1 Einführung Was ein Kernel ist, welche Bauarten es gibt und wie Linux entstanden ist.
  2. Kapitel 2 Architektur-Überblick User Space und Kernel Space, Privilegstufen und die Subsysteme des Kernels.
  3. Kapitel 3 Der Bootvorgang Von der Firmware über den Bootloader bis zum ersten Prozess.
  4. Kapitel 4 Systemaufrufe Wie Programme den Kernel um Hilfe bitten – Schritt für Schritt.
  5. Kapitel 5 Prozesse & Threads task_struct, fork(), exec() und der Lebenszyklus eines Prozesses.
  6. Kapitel 6 Der Scheduler Wer bekommt wann die CPU? Scheduling-Klassen, EEVDF und Echtzeit.
  7. Kapitel 7 Speicherverwaltung Virtueller Speicher, Seitentabellen, Allokatoren und der Page Cache.
  8. Kapitel 8 · in Vorbereitung Interrupts & verzögerte Arbeit IRQs, Softirqs, Workqueues und Timer.
  9. Kapitel 9 · in Vorbereitung Synchronisation Spinlocks, Mutexe, atomare Operationen und RCU.
  10. Kapitel 10 · in Vorbereitung VFS & Dateisysteme Inodes, Dentries und wie ext4, Btrfs oder procfs eingebunden werden.
  11. Kapitel 11 · in Vorbereitung Block-I/O Vom bio zur Hardware: blk-mq und I/O-Scheduler.
  12. Kapitel 12 · in Vorbereitung Gerätetreiber Gerätemodell, Kernel-Module, Device Tree und udev.
  13. Kapitel 13 · in Vorbereitung Netzwerk-Stack Sockets, sk_buff, TCP/IP, Netfilter und XDP.
  14. Kapitel 14 · in Vorbereitung Interprozesskommunikation Pipes, Signale, Shared Memory und Futexe.
  15. Kapitel 15 · in Vorbereitung Sicherheit & Isolation Capabilities, LSM, seccomp, Namespaces und cgroups – die Bausteine von Containern.
  16. Kapitel 16 · in Vorbereitung eBPF Sichere Programme im Kernel: Verifier, JIT und Einsatzgebiete.
  17. Kapitel 17 · in Vorbereitung Kernel-Entwicklung Quellbaum, Konfiguration, Kompilieren, Patches und Release-Zyklus.