In den Katakomben des Systems

Was ist ein Kernel?

| Autor / Redakteur: Otto Geißler / Ulrike Ostler

Der Kernel ist das Zentrum eines Betriebssystems. Er stellt alle grundlegenden Dienste für alle anderen Teile des Betriebssystems zur Verfügung.
Der Kernel ist das Zentrum eines Betriebssystems. Er stellt alle grundlegenden Dienste für alle anderen Teile des Betriebssystems zur Verfügung. (Bild: © djama - stock.adob.com)

Damit ein Computer reibungslos funktioniert, braucht er die Verwaltung und Kontrollinstanz des Kernels. Und so viel ist sicher: Ohne Kernel läuft in einem Rechner praktisch gar nichts.

Der Kernel wird buchstäblich als der Kern des Betriebssystems verstanden und bildet die unterste Schicht der Systemsoftware. Als Systemkern und Programm steuert er alle Prozessor- und Speicherzugriffe, unterhält die wichtigsten Treiber und greift direkt auf die Hardware zu. Indem der Kernel die unterste Softwareschicht des Systems einnimmt, ist er die Basis in der Kommunikation zwischen Hard- und Software.

Anforderungen, Bestandteile und Schichten

Zu den allgemeinen Anforderungen des Kernels gehören die Parallelverarbeitung verschiedener Aufgaben (Multitasking), Einhaltung zeitkritischer Grenzen, Offenheit für unterschiedlichste Anwendungen und Erweiterungen. Ein Kernel ist also das Betriebssystem im engeren Sinne.

Davon ausgenommen sind die Systemsoftware, Bibliotheken und Anwendungssoftware. So legten zum Beispiel die Linux-Entwickler einen großen Wert auf die Hauptfunktion des Kernels als Vermittler im System. Diese Restriktion auf die wesentlichen Aufgaben eines Betriebssystems zeigt, dass zum Beispiel die grafische Oberfläche (X Window System) unter Linux absolut unabhängig vom Linux-Kernel existiert.

Dieser Grundsatz blieb erhalten, auch wenn der Umfang des Linux-Kernels über die Jahre größer wurde. Die jeweiligen Erweiterungen beziehen sich häufig auf die Unterstützung hinzugekommener Hardware, neue Plattformen sowie zusätzliche Hardwarefunktionen. Im Vergleich dazu sind bei "Microsoft Windows" das Betriebssystem und die grafische Oberfläche sehr eng miteinander verbunden.

Jeder Kernel teilt sich in verschiedene Schichten (Layer) auf. Die unterste Schicht bildet die Schnittstelle zur Hardware (Prozessoren, Speicher und Geräte), dann folgen die weiteren Schichten der Speicherverwaltung (gegebenenfalls virtueller Hauptspeicher), Prozessverwaltung (Scheduler), die Geräteverwaltung (Device Management) und schließlich die Dateisysteme. Dabei stellen die maschinennahen Schichten im unteren Bereich wiederum die Basis für die oberen dar.

Welche Kernel-Arten gibt es?

Können auf einen Kernel mehrere Prozesse zur gleichen Zeit ablaufen, liegen so genannte Multitasking-Kernel vor. Wobei grundsätzlich von einer CPU - außer bei Mehrkernsystemen - immer nur ein Prozess bearbeitet werden kann. Die Prozesswechsel werden meist von einem Scheduler geregelt. Durch die Ergänzung einer Zugriffsverwaltung wird aus einem Multitasking-Kernel ein Mehrbenutzer- beziehungsweise Multiuser-System.

Wird ein Multitasking-Kernel durch eine Zugriffsverwaltung auf Prozesse und Geräte ergänzt, erhält man ein Multiuser- oder Mehrbenutzer-System, worauf dann mehrere User per Authentifizierung gleichzeitig arbeiten können. Dies erfolgt, indem der Kernel jedem User die aufgerufenen Prozesse zuteilt oder sie für die User separiert.

Damit können verschiedene User mit jeweils unterschiedlichen Zugriffsrechten das System nutzen. Darüber hinaus ermöglicht ein solches Multiuser-System, dass auch User von einem anderen Rechner die Programme dieses Rechners ausführen können.

Was ist eigentlich ein System-Prozess?

Zur Realisierung eines Betriebssystems müssen Prozesse (Tasks) ablaufen. Ein Prozess umfasst mindestens einen Registersatz des Prozessors und wird über den Scheduler gestartet und wieder gestoppt.

Jeder Prozess steuert den Zugriff auf einen definierten Teil des Hauptspeichers und auf die zugewiesenen Ein- und Ausgabekanäle, die wiederum auf Dateien oder sonstige Geräte zugreifen. Per Systemaufrufe kommuniziert der Betriebssystem-Kernel mit den jeweiligen Prozessen.

Ein Programm läuft in der Regel in genau einem Prozess ab. In manchen Fällen auch in mehreren Prozessen gleichzeitig.

Was passiert beim Start des Systems?

Bei einem Systemstart muss der Kernel in der Regel mithilfe eines Bootloader in den Hauptspeicher geladen und dort gestartet werden. Dem kann ein möglicher Check der Hardware vorausgegangen sein.

In der Folge initialisiert der Kernel dann die verbundenen Geräte und startet die ersten Prozesse. Dies geschieht bei einem Mehrprozess-System, indem die Systemdienste geladen und dann einen oder mehrere Kommandointerpreter oder eine grafische Benutzeroberfläche als Prozesse gestartet werden. Dann folgt das Starten und Anhalten weiterer Prozessen und Anwenderprogramme sowie die Zuweisung von Speicherplätzen und Ein-/Ausgabekanäle auf die einzelnen Prozesse.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45103746 / Definitionen)