Kernel einfach erklärt: Aufgaben, Funktionsweise und Arten
Wer mit einem Betriebssystem arbeitet, arbeitet auch mit einem Kernel – meist ohne es zu bemerken. Der Kernel ist der zentrale Bestandteil eines Betriebssystems und bildet die Schnittstelle zwischen Hardware und Software. Er läuft vom Start bis zum Herunterfahren des Rechners ununterbrochen im Hintergrund.
Als Programm mit den höchsten Rechten steuert der Kernel alle Zugriffe auf Prozessor und Arbeitsspeicher, bindet über Treiber die Geräte ein und verteilt die Ressourcen des Systems möglichst effizient auf die laufenden Programme.
Fragen, gestalten, recherchieren – sicher mit IONOS GPT. Die souveräne und günstige Alternative zu ChatGPT & Co.
Was ist ein Kernel?
Ein Kernel (deutsch: Betriebssystemkern oder Systemkern) ist der Teil eines Betriebssystems, der mit uneingeschränkten Rechten direkt auf die Hardware zugreift. Er verwaltet Prozessor, Arbeitsspeicher und Geräte und stellt diese Ressourcen den Anwendungen kontrolliert über Systemaufrufe zur Verfügung. Anwendungen greifen also nie selbst auf die Hardware zu, sondern bitten den Kernel darum.
Das gilt unabhängig davon, ob es sich um ein Linux-, macOS- oder Windows-System handelt, ob der Kernel auf einem Smartphone, einem Server oder in einer virtuellen Maschine läuft – etwa bei einer Virtualisierung mit KVM. Der Begriff stammt aus dem Englischen: „Kernel“ bedeutet so viel wie „Kern“ oder „Samenkorn“ – passend für den innersten Teil des Systems.
Wie ist ein Kernel aufgebaut?
Wie ein Kernel intern organisiert ist, hängt von seiner Architektur ab (mehr dazu im Abschnitt zu den Kernel-Arten). Zur Veranschaulichung lässt er sich aber als Folge von Schichten (Layern) beschreiben, die von der Hardware bis zu den Anwendungen reichen:
- Die unterste Schicht ist die Schnittstelle zur Hardware (Prozessoren, Speicher und Geräte). Sie enthält maschinennahen, oft architekturspezifischen Code, etwa für die Behandlung von Interrupts oder die Ansteuerung von Netzwerk- und PCI-Express-Controllern.
- Darauf liegt die Speicherverwaltung, die den Arbeitsspeicher verteilt und jedem Prozess einen eigenen virtuellen Adressraum bereitstellt.
- Die Prozessverwaltung mit dem Scheduler entscheidet, welcher Prozess wann und wie lange Rechenzeit erhält, und ermöglicht so Multitasking.
- Die Geräteverwaltung (Device Management) bindet Hardware über Gerätetreiber ein.
- Das Dateisystem organisiert, wie Dateien und Verzeichnisse auf Datenträgern wie SSDs oder Festplatten abgelegt und wiedergefunden werden.
- Ganz oben steht die Systemaufrufschnittstelle (englisch: System Call Interface, SCI), über die Anwendungen die Dienste des Kernels anfordern.
Wo endet der Kernel?
Der Kernel deckt den Weg von der Hardware bis zur Systemaufrufschnittstelle ab. Alles darüber läuft außerhalb des Kernels: Systemdienste, Bibliotheken, Anwendungen und auch die Shell. Die Shell ist ein gewöhnliches Programm, über das Nutzerinnen und Nutzer mit dem System interagieren – entweder textbasiert in der Kommandozeile (z. B. Bash oder PowerShell) oder über eine grafische Oberfläche (Graphical User Interface, GUI). Anschaulich ist das Bild eines Kerns, um den die Shell wie ein Ring liegt.
Wie kommunizieren Programme mit dem Kernel?
Ein Programm, das zum Beispiel eine Datei schreiben, Speicher anfordern oder eine Netzwerkverbindung öffnen will, sendet einen Systemaufruf (englisch: System Call) an den Kernel. Dazu nutzt es einen speziellen Prozessorbefehl, der die CPU vom eingeschränkten Benutzermodus in den privilegierten Kernelmodus umschaltet. Der Kernel prüft die Anfrage, etwa ob der Prozess die nötigen Rechte besitzt, führt sie aus und gibt das Ergebnis an das Programm zurück.
Der Kernel muss die Anfrage dabei nicht erst „in Maschinensprache übersetzen“: Er liegt selbst als Maschinencode vor. Entscheidend ist, dass er im Kernelmodus auch privilegierte Prozessorbefehle ausführen darf, die normalen Programmen verwehrt sind – etwa zur Konfiguration des Speicherschutzes oder zur Steuerung von Interrupts. Systemaufrufe laufen ständig ab, ohne dass Anwenderinnen und Anwender etwas davon bemerken.
Was sind die Aufgaben eines Kernels?
Die zentrale Anforderung an einen modernen Kernel ist Multitasking: Viele Programme sollen scheinbar gleichzeitig laufen, ohne sich gegenseitig zu stören. Dabei muss der Kernel zeitkritische Abläufe zuverlässig bedienen und zugleich offen für neue Hardware und Erweiterungen bleiben. Daraus ergeben sich vier Kernaufgaben:
- Speicherverwaltung: Teilt Arbeitsspeicher zu, gibt ihn wieder frei und schützt die Speicherbereiche der Prozesse voreinander.
- Prozessverwaltung: Erzeugt und beendet Prozesse und bestimmt über den Scheduler, welche Prozesse die CPU wann und wie lange nutzen.
- Geräteverwaltung: Vermittelt über Gerätetreiber zwischen Hardware und Prozessen.
- Systemaufrufe und Sicherheit: Nimmt Anfragen der Prozesse entgegen und prüft dabei Zugriffsrechte auf Dateien, Speicher und Geräte.
Alles Weitere – Systemdienste, Bibliotheken und Anwendungssoftware – läuft außerhalb des Kernels und nutzt ihn nur als Vermittler. Das gilt auch für die grafische Oberfläche: Unter Linux laufen Display-Server und Desktop-Umgebung vollständig als normale Programme, sie greifen aber über Kernel-Schnittstellen wie das Direct Rendering Manager (DRM) auf die Grafikhardware zu.
Auf Mehrbenutzersystemen überwacht der Kernel zusätzlich, welcher Benutzer auf welche Dateien und Hardware-Komponenten zugreifen darf. Welche Prozesse gerade laufen und wie viele Ressourcen sie belegen, zeigt der Task-Manager an. Beenden Sie dort einen Prozess, fordert der Task-Manager den Kernel per Systemaufruf auf, ihn zu beenden; der Kernel gibt anschließend den zugewiesenen Arbeitsspeicher wieder frei.
Was macht der Kernel beim Systemstart?
Beim Hochfahren lädt zunächst die Firmware (heute meist UEFI) den Bootloader, zum Beispiel GRUB unter Linux oder den Windows Boot Manager. Der Bootloader lädt dann den Kernel in den Arbeitsspeicher und übergibt ihm die Kontrolle. Geschützt ist der Kernel anschließend nicht durch den Bootloader, sondern durch den Kernelmodus und den Speicherschutz der CPU: Normale Programme können den Speicherbereich des Kernels weder lesen noch verändern.
Danach initialisiert der Kernel die Hardware und lädt die nötigen Treiber. Anschließend startet er den ersten Prozess im Benutzermodus (unter Linux meist systemd), der wiederum Systemdienste und schließlich die Anmeldung und die Anwenderprogramme startet.
Wie funktioniert ein Kernel?
Zunächst eine Abgrenzung: Mit „Kernel“ ist nicht ein Prozessorkern gemeint, sondern der Betriebssystemkern. Ein Kernel ist auch keine API und kein Framework – er stellt Anwendungen aber über die Systemaufrufe eine eigene Programmierschnittstelle zur Verfügung.
Kernelspace und Userspace
Die Arbeit des Kernels bleibt für Anwenderinnen und Anwender unsichtbar. Er läuft in einem eigenen, geschützten Speicherbereich, dem Kernelspace. Dateien, Programme, Spiele, Browser – kurzum alles, was Sie am Bildschirm sehen – laufen im Userspace. Die Verbindung zwischen beiden Welten bildet die Systemaufrufschnittstelle.
Entsprechend kennt die CPU zwei Ausführungsmodi:
- Code im Kernelmodus hat uneingeschränkten Zugriff auf Hardware und Speicher.
- Code im Benutzermodus (Usermode) darf nicht direkt auf die Hardware zugreifen und muss dafür Systemaufrufe nutzen.
Diese Trennung macht das System robust: Stürzt ein Programm im Benutzermodus ab, beendet der Kernel nur diesen einen Prozess, alle anderen laufen weiter. Ein schwerer Fehler im Kernelmodus – etwa in einem fehlerhaften Treiber – kann dagegen das gesamte System zum Absturz bringen. Unter Linux spricht man dann von einer Kernel Panic, unter Windows vom Bluescreen.
Multitasking und Mehrkernprozessoren
Ein Prozessorkern kann zu jedem Zeitpunkt nur einen Prozess ausführen. Dass trotzdem Dutzende Programme gleichzeitig zu laufen scheinen, liegt am Scheduler: Er wechselt in sehr kurzen Abständen zwischen den Prozessen. Bei Mehrkernprozessoren verteilt der Kernel die Prozesse zusätzlich auf die einzelnen Kerne, sodass dort tatsächlich mehrere Prozesse parallel laufen.
Gängige Kernel wie Linux, Windows und XNU verwalten alle Kerne mit einem gemeinsamen Kernel. Einen anderen Ansatz verfolgen Multikernel-Betriebssysteme: Sie behandeln die Kerne eines Prozessors wie ein Netzwerk unabhängiger CPUs, auf denen jeweils ein eigener Kernel läuft und die über Nachrichten kommunizieren. Dieses Konzept wurde vor allem in der Forschung erprobt, etwa mit dem Betriebssystem Barrelfish der ETH Zürich und Microsoft Research.
Der Kernel im Betriebssystem
Um die Rolle des Kernels einzuordnen, hilft es, einen Computer in drei Ebenen zu unterteilen:
- Hardware: Die Basis des Systems aus Prozessor, Arbeitsspeicher sowie Ein- und Ausgabegeräten. Die CPU führt Berechnungen sowie Lese- und Schreibvorgänge im Speicher aus.
- Kernel: Der Kern des Betriebssystems. Er sagt der CPU, was sie tun soll, und verteilt die Hardware-Ressourcen.
- Benutzerprozesse: Alle laufenden Programme, die der Kernel verwaltet. Er ermöglicht ihnen auch, untereinander Daten auszutauschen – die sogenannte Interprozesskommunikation (Inter-Process Communication, IPC).
Welche Kernel-Arten gibt es?
Kernel lassen sich nach ihren Fähigkeiten unterscheiden: Laufen mehrere Prozesse scheinbar gleichzeitig, spricht man von einem Multitasking-Kernel. Kommt eine Benutzer- und Rechteverwaltung hinzu, wird daraus ein Mehrbenutzersystem, auf dem mehrere Benutzer gleichzeitig arbeiten können. Die Anmeldung selbst übernehmen dabei Programme im Userspace; der Kernel ordnet jedem Prozess eine Benutzerkennung zu und setzt die damit verbundenen Rechte durch.
Wichtiger für die Einordnung ist aber die Architektur, also die Frage, welche Aufgaben im Kernel selbst und welche außerhalb erledigt werden.
Die drei Kernel-Arten
Nach ihrer Architektur lassen sich Kernel in drei Gruppen einteilen:
- Monolithischer Kernel: Alle zentralen Funktionen – Speicher- und Prozessverwaltung, Interprozesskommunikation, Dateisysteme und Gerätetreiber – laufen gemeinsam im Kernelmodus. Das ist schnell, weil keine Umwege nötig sind; ein Fehler in einem Treiber kann aber den ganzen Kernel treffen. Das bekannteste Beispiel ist Linux. Er ist modular aufgebaut: Treiber und andere Funktionen lassen sich als Kernelmodule zur Laufzeit nachladen, laufen dann aber ebenfalls im Kernelmodus.
- Mikrokernel: Der Kernel ist bewusst minimal gehalten und übernimmt nur die grundlegendsten Aufgaben wie Speicherverwaltung, Scheduling und Interprozesskommunikation. Treiber, Dateisysteme und Netzwerk-Stacks laufen als eigenständige Dienste im Userspace. Stürzt ein solcher Dienst ab, bleibt der Kernel intakt. Der Preis dafür ist zusätzlicher Kommunikationsaufwand. Mikrokernel kommen vor allem dort zum Einsatz, wo Zuverlässigkeit und Sicherheit im Vordergrund stehen, etwa QNX in Fahrzeugen und Industrieanlagen oder seL4, dessen Korrektheit formal mathematisch bewiesen wurde. Auch Zircon, der Kernel von Googles Betriebssystem Fuchsia, ist ein Mikrokernel.
- Hybrid-Kernel: Er kombiniert beide Ansätze. Er ist nach dem Vorbild eines Mikrokernels in Komponenten gegliedert, führt aus Leistungsgründen aber viele Dienste – darunter Treiber und Dateisysteme – im Kernelmodus aus. Beispiele sind der Windows-NT-Kernel und XNU, der Kernel von macOS und iOS. XNU verbindet den Mikrokernel Mach mit Komponenten aus FreeBSD und dem Treiber-Framework I/O Kit.
Daneben gibt es Spezialformen wie Exokernel und Unikernel, die vor allem in der Forschung bzw. für einzelne Cloud-Anwendungen genutzt werden.
| Kernel-Art | Was läuft im Kernelmodus? | Vorteile | Nachteile | Beispiele |
|---|---|---|---|---|
| Monolithischer Kernel | Nahezu alle Betriebssystemdienste inkl. Treibern | Hohe Leistung, direkte Kommunikation | Treiberfehler können das ganze System treffen | Linux, FreeBSD |
| Mikrokernel | Nur Grundfunktionen (Speicher, Scheduling, IPC) | Robust, gut absicherbar | Mehr Kommunikationsaufwand | QNX, seL4, Zircon |
| Hybrid-Kernel | Kern plus viele Dienste und Treiber | Kompromiss aus Leistung und Struktur | Nicht so isoliert wie ein Mikrokernel | Windows NT, XNU (macOS, iOS) |
Bei den verschiedenen Betriebssystemen kann man schnell die Übersicht verlieren: Linux-Distributionen und Android-Geräte nutzen einen Linux-Kernel, Windows nutzt den NT-Kernel, auf den mehrere Subsysteme aufsetzen, und Apple verwendet für macOS, iOS und die davon abgeleiteten Systeme den XNU-Kernel.
Welche Kernel sind Open Source?
Der Linux-Kernel ist Open Source und steht unter der GNU General Public License Version 2. Seinen Quellcode sowie ein Archiv aller bisherigen Versionen veröffentlicht das Projekt auf kernel.org. Etwa alle zwei bis drei Monate erscheint eine neue Hauptversion; im Oktober 2026 ist das Linux 7.3. Für Server und Geräte mit langen Laufzeiten gibt es zusätzlich Longterm-Versionen (LTS), die über mehrere Jahre Sicherheits- und Fehlerkorrekturen erhalten. Neben C wird seit Linux 6.1 auch die Programmiersprache Rust im Kernel verwendet, vor allem für neue Treiber; seit Ende 2025 gilt Rust dort nicht mehr als Experiment.
Auch Apple veröffentlicht den Quellcode des XNU-Kernels als Teil des Open-Source-Betriebssystems Darwin. Der Windows-NT-Kernel ist dagegen proprietär. Microsoft setzt aber selbst einen Linux-Kernel ein: Das Windows Subsystem for Linux in der Version WSL 2 betreibt einen echten, von Microsoft angepassten Linux-Kernel in einer schlanken virtuellen Maschine. Dessen Quellcode ist ebenfalls öffentlich.
Welche Rolle spielt der Kernel auf Servern?
Auf Servern wirkt sich der Kernel unmittelbar auf Stabilität, Sicherheit und Leistung aus. Für die Praxis sind vor allem drei Punkte wichtig:
- Virtuelle Maschinen und Container: Bei einem virtuellen Server auf Basis von KVM läuft in jeder virtuellen Maschine ein eigener Kernel. Sie können dort also Betriebssystem und Kernel-Version selbst wählen. Container wie Docker dagegen teilen sich den Kernel des Host-Systems und trennen Prozesse über Kernel-Funktionen wie Namespaces und cgroups. Das spart Ressourcen, bedeutet aber auch, dass alle Container von der Kernel-Version und von Sicherheitslücken des Hosts abhängen.
- Kernel-Version prüfen: Unter Linux zeigt der Befehl
uname -ran, welche Kernel-Version gerade läuft. - Kernel-Updates: Sicherheitsupdates für den Kernel werden in der Regel erst nach einem Neustart wirksam. Für Systeme, die möglichst ohne Unterbrechung laufen sollen, gibt es unter Linux das sogenannte Livepatching, mit dem sich kritische Korrekturen in den laufenden Kernel einspielen lassen.


