Der Kernel ist das Kernstück eines Betriebssystems und stellt eine Schicht zwischen der Hardware (z. B. Prozessor, Speicher, Peripheriegeräte) und den Anwendungsprogrammen dar. Ohne einen funktionierenden Kernel könnten Anwendungen nicht auf die Ressourcen des Computers zugreifen, und das Gesamtsystem würde nicht ordnungsgemäß funktionieren. Die Hauptaufgaben des Kernel * Speicherverwaltung: Der Kernel ist für die Verwaltung des physischen und virtuellen Speichers verantwortlich. Er allotiert und dealloziert Speicherblöcke für laufende Prozesse, optimiert die Speichernutzung und verhindert Konflikte zwischen verschiedenen Anwendungen. * Prozessverwaltung: Der Kernel ermöglicht die Erstellung, Ausführung, Unterbrechung und Beendigung von Prozessen. Er verwaltet die Zeit, die jedem Prozess auf der CPU zugewiesen wird (Scheduling) und koordiniert die Kommunikation zwischen verschiedenen Prozessen. * Treiberunterstützung: Peripheriegeräte wie Drucker, Tastaturen und Grafikkarten kommunizieren über Treiber mit dem Betriebssystem. Der Kernel stellt diese Treiber bereit und ermöglicht so die nahtlose Interaktion zwischen Hardware und Software. * Dateisystemverwaltung: Das Speichern, Organisieren und Abrufen von Daten auf Massenspeichergeräten wie Festplatten oder SSDs erfolgt über das Dateisystem. Der Kernel verwaltet die Dateisysteme, damit Daten korrekt gespeichert und wiedergefunden werden können. * Sicherheit: Der Kernel setzt Mechanismen zur Durchsetzung von Sicherheitsrichtlinien um. Dazu gehören Zugriffsrechte, Authentifizierung und Verschlüsselung, um die Integrität des Systems und der Daten zu gewährleisten. Der reibungslose Ablauf einer Computeranwendung hängt entscheidend von der Fähigkeit ab, mit dem Betriebssystem zu kommunizieren und seine Dienste in Anspruch zu nehmen. Hier kommen sogenannte [[syscall|"Systemaufrufe" oder "Syscalls"]] ins Spiel. Syscalls sind die Schnittstelle, über die Anwendungen mit dem Kernel interagieren können. Sie ermöglichen es Anwendungen, auf die Ressourcen und Funktionen des Kernels zuzugreifen, ohne dabei in den sensiblen Kernel-Code eintauchen zu müssen.