Zum Inhalt springen

Was ist ein Kernel?

Der Kernel, oder auch Systemkern, sorgt innerhalb eines Computers für den reibungslosen Ablauf des Betriebssystems und ist die Schnittstelle zwischen der Software und der Hardware. Er wird in allen Geräten mit einem Betriebssystem eingesetzt, also beispielsweise Computer, Laptops, Smartphones, Smart Watches etc.

Welche Aufgaben übernimmt der Kernel?

Der Kernel ist hauptsächlich die Schnittstelle zwischen dem Betriebssystem, also der Software, und den Hardwarekomponenten in einem Gerät. Daraus ergeben sich verschiedene Aufgaben, die es zu bewältigen gibt. Für den Endnutzer ist diese Arbeit jedoch nicht sichtbar und kommt nur dadurch zum Ausdruck, ob alle Programme einwandfrei laufen oder nicht.

Wenn wir ein Programm auf einem Computer nutzen, wie beispielsweise Excel, hantieren wir auf dem sogenannten Graphical User Interface (GUI). Jeder Buttonklick oder eine sonstige Aktion wird dann von dem Programm in Maschinencode umgewandelt und an den Kernel des Betriebssystems geschickt. Wenn wir in einer Exceltabelle eine neue Spalte hinzufügen wollen, geht dieser Aufruf an den Systemkern. Dieser wiederum gibt den Aufruf weiter an die Computer Processing Unit (CPU), die dann die Aktion ausführt.

Wenn mehrere Programme gleichzeitig laufen, sorgt der Systemkern außerdem dafür, dass die Anfragen der Programme nacheinander abgearbeitet werden und dem Nutzer das Gefühl vermittelt wird, dass die Prozesse gleichzeitig ablaufen. Wenn also in unserem Beispiel gleichzeitig mit Excel noch ein Browserfenster geöffnet ist, sorgt der Systemkern dafür, dass die Anforderungen der Programme an die CPU und andere Hardware koordiniert abgearbeitet wird.

Hinzu kommen noch weitere, detailliertere Aufgaben, wie beispielsweise:

  • Verwaltung von extern angeschlossenen Geräten, wie Tastaturen, Mäuse oder Monitore, und deren einwandfreie Funktion
  • Lösung von Fehlern bei der Nutzung von Arbeitsspeichern, beispielsweise wenn die Arbeitsspeichernutzung eines Programms zu stark ansteigt.
  • Optimierung der CPU-Nutzung

Aus welchen Schichten besteht der Kernel?

Der Kernel arbeitet in mehreren Schichten, die aufeinander aufbauen. Dazu gehören:

  • Hardware: Die unterste Schicht bildet die Schnittstelle zu der Systemhardware, auf die das Betriebssystem Zugriff hat. Dazu gehören beispielsweise der PCI-Express-Controller oder Speicher.
  • Speicherverwaltung: In der nächsten Schicht werden den laufenden Prozessen dedizierte Mengen des zur Verfügung stehenden Arbeitsspeichers zugewiesen. Des Weiteren kann hier auch virtueller Hauptspeicher verteilt werden.
  • Prozessverwaltung: In dieser Schicht werden die Zeiten der Programme gemanaget und eingehende Anfragen zeitlich so angeordnet, dass sie für uns als Nutzer parallel erscheinen.
  • Geräteverwaltung: In der vorletzten Schicht findet die Geräteverwaltung statt. Im Unterschied zu der Hardwareschicht, handelt es sich hierbei um extern angeschlossene Geräte, wie Monitore oder Drucker, deren Kommunikation über spezielle Treiber sichergestellt ist.
  • Dateisystem: In der obersten Schicht werden Prozesse vorgesehene Bereiche auf der Festplatte, also HDD oder SSD, zugewiesen.

Diese Schichten operieren so, dass jede höhere Schicht auf die darunterliegenden Schichten angewiesen ist und darauf aufbaut. Die Prozessverwaltungsschicht beispielsweise greift auch auf Prozesse in der Hardwareschicht zu. Das Gegenteil ist jedoch nicht der Fall.

Welche Kernel-Arten gibt es?

In der Regel unterscheidet man drei verschiedene Kernel-Arten abhängig davon wie viele Prozesse und Nutzer gleichzeitig verwaltet werden können.

Micro-Kernel

Der Micro-Kernel erfüllt nur die minimalen Aufgaben, wie die Speicherverwaltung und die Verwaltung der CPU-Prozesse. Andere Funktionalitäten, wie beispielsweise das Dateisystem oder die Geräteverwaltung werden an das Betriebssystem selbst ausgelagert. Der Vorteil besteht darin, dass es nicht zu einem Gesamtausfall des Systems kommen kann, wie man ihn beispielsweise bei Windows kennt.

Das Betriebssystem von Apple Computern, MacOS, basiert beispielsweise auf einer Mikrokern-Architektur.

Monolithischer Kernel

Der monolithische Kernel übernimmt zentral alle bereits beschriebenen Aufgaben, ist für alle Speicher- und Prozessverwaltungen zuständig und übernimmt auch die Hardwareverwaltung von extern angeschlossenen Geräten. Das Windows Betriebssystem beruht auf einem monolithischen Kern.

Durch das zentrale Design sind monolithische Kerne meist deutlich schneller als Mikrokerne, jedoch kann es dadurch auch zu Systemabstürzen kommen, wenn ein einzelner Prozess nicht richtig funktioniert.

Hybrid-Kernel

Wie der Name bereits vermuten lässt, ist der Hybrid-Kern die Mischung aus diesen beiden Konzepten. Es handelt sich dabei im Grunde genommen auch um einen großen Kernel, der alle Aufgaben übernimmt, jedoch deutlich kompakter ist und in verschiedene Module aufgesplittet werden kann.

Wie funktioniert der Kernel in einem Jupyter Notebook?

Bei der Arbeit mit Daten und Machine Learning wird oft auf Jupyter Notebook zurückgegriffen. Es handelt sich um eine web-basierte Plattform für die Erstellung und das Teilen von Programmiercode. Es wird deshalb so oft für Data Science Anwendungen genutzt, da einzelne Codeblöcke ausgeführt werden können und deren Ergebnisse, zum Beispiel Graphen, direkt sichtbar sind. Das ist vor allem bei der Modellerstellung oder der Analyse von Datensätzen vorteilhaft, wenn die nächsten Programmierschritte von den vorherigen Ergebnissen abhängen.

Bei der Nutzung von Jupyter Notebook wird auch ein Kernel gestartet, der mitunter zu Problemen führen kann, wie beispielsweise im folgenden Beispiel beim Verbindungsaufbau. Jedoch unterscheidet sich dieser komplett von dem eines Betriebssystems wie er in diesem Beitrag bisher beschrieben wurde.

Problem beim Jupyter Notebook Kernel
Jupyter Notebook Problem

Der Jupyter Notebook Kernel ist eine Engine, die den Notebook Code zur Ausführung bringt und speziliasiert ist auf eine bestimmte Programmiersprache, wie beispielsweise Python. Er nimmt aber nicht die umfassenden Schnittstellenfunktionen war, die bisher beschrieben wurden.

Die folgenden Befehle sind im Umgang mit dem Jupyter Notebook Kernel besonders hilfreich:

  • Interrupt: Dieser Befehl stoppt die Prozesse, die gerade in einer Zelle ablaufen. Dadurch kann zum Beispiel das Training eines Modells gestoppt werden, auch wenn noch nicht alle Trainingsepochen erreicht wurden.
  • Restart & Run All: Mit diesem Befehl können alle Zellen nochmal neu ausgeführt werden und die bisherigen Variablen wurden gelöscht. Das kann dann sinnvoll sein, wenn man einen neueren Datensatz in das bestehende Programm einlesen will.
  • Restart: Der alleinige Befehl „Restart“ führt zu demselben Ergebnis, jedoch werden nicht nochmal alle Zellen zur Ausführung gebracht.
  • Reconnect: Beim Training von großen Modell kann der Kernel „sterben“, weil der Arbeitsspeicher vollläuft. Dann ist ein Reconnect sinnvoll.
  • Shutdown: Solange ein Kernel noch läuft, bindet er auch Arbeitsspeicher. Wenn man also parallel andere Programme laufen lässt, für die man Arbeitsspeicher freigeben will, kann der „Shutdown“ Befehl Sinn machen.

Das solltest Du mitnehmen

  • Ein Kernel sorgt innerhalb eines Computers für den reibungslosen Ablauf des Betriebssystems und ist die Schnittstelle zwischen der Software und der Hardware.
  • Er ist in verschiedene Schichten unterteilt, welche aufeinander aufbauen.
  • Zu den Aufgaben zählen die Verwaltung von parallel laufenden Prozessen oder die einwandfreie Funktion von extern angeschlossenen Geräten.
  • Der Jupyter Notebook Kernel ist kein Systemkern im beschriebenen Sinne, da er lediglich dafür genutzt wird Programmiercode auszuführen.

Andere Beiträge zum Thema Kernel

close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Cookie Consent mit Real Cookie Banner