Linux ist für gelegentliche Benutzer und weniger als Hardcore-Fans ein Betriebssystem. Für Puristen ist jedoch der Titel "Linux" dem Kernel vorbehalten, der das Betriebssystem antreibt. Wenn Sie wissen möchten, was der Linux-Kernel ist, lassen Sie uns diese Frage mit Blick auf den neuen Benutzer beantworten.
Modi
Bevor wir erklären, was ein Kernel ist, ist es wichtig, die Begriffe "Benutzermodus" und "Kernelmodus" zu verstehen. Der Benutzermodus ist, wenn das Ausführen von Code nicht direkt auf Hardware- oder Referenzspeicher zugreifen kann. Um auf Hardware und Speicher zugreifen zu können, muss im Benutzermodus ausgeführter Code Anweisungen an System Application Programming Interfaces (APIs) delegieren. Kernel-Modus ist, wenn Code ausgeführt wird, der uneingeschränkten Zugriff auf die gesamte Hardware hat und für die vertrauenswürdigsten Funktionen eines Betriebssystems reserviert ist.
Was ist ein Kernel?
Jedes Betriebssystem hat einen Kernel. Windows, Mac OS, iOS, Android, Chrome OS und Linux verfügen jeweils über ein Low-Level-System, das für die Verbindung aller Anwendungen mit der physischen Hardware des Computers verantwortlich ist. Ohne den Kernel kann keine Ihrer Anwendungen den physischen Computer verwenden. Apps wie Firefox, Chrome, LibreOffice, MS Office oder Outlook funktionieren nicht. Der Kernel ist auch dafür verantwortlich, dass Prozesse Informationen über die so genannte Inter-Process Communication (IPC) austauschen können.
Es gibt (im Allgemeinen) drei Arten von Kerneln:
- Monolithische KernelDiese Kernel umfassen die CPU-, Speicher-, IPC-, Gerätetreiber-, Dateisystem-Management- und System-Server-Aufrufe. Es ist auch für die Weitergabe von freiem Systemspeicher an Anwendungen verantwortlich. Diese Kernel-Typen können normalerweise besser auf Hardware und Multitasking zugreifen.
- Mikrokerne: Microkernels verfolgen einen minimalistischen Ansatz und verwalten nur die CPU, den Speicher und den IPC.
- Hybridkerne: Hybrid-Kernel können entscheiden, was sie im Benutzer- oder Kernel-Modus ausführen möchten. Obwohl dies das Beste aus beiden Welten bietet, müssen die Hardwarehersteller Treiber erstellen, die als Schnittstelle zwischen laufendem Code und Hardware dienen.
Linux verwendet einen Open Source-Monolithic Kernel, während MacOS und Windows Hybrid-Kernel verwenden. Der Linux-Kernel wurde 1991 von Linus Torvalds konzipiert. Bis zum heutigen Tag ist Torvalds der führende Entwickler des Linux-Kernels, während Entwickler aus der ganzen Welt zum Linux-Kernel beitragen. Es wird geschätzt, dass fast 10.000 Entwickler aus mehr als 1.000 Unternehmen zum Linux-Kernel beigetragen haben (seit Tracking im Jahr 2005 begann).
Wo ist der Kernel?
Wenn Sie ein Terminalfenster öffnen und den Befehl absetzen ls / bootSie sehen eine Datei mit dem Namen vmlinuz-VERSION (Wobei VERSION der Name oder die Nummer der Version ist). Die vmlinuz-Datei ist der eigentliche bootfähige Linux-Kernel, und das "z" gibt an, dass der Kernel komprimiert ist. statt vmlinux haben wir also vmlinuz.

In diesem / boot-Verzeichnis befinden sich weitere wichtige Kernel-Dateien wie initrd.img-VERSION, system.map-VERSION und config-VERSION (wobei VERSION entweder ein Name oder eine Versionsnummer ist). Diese anderen Dateien dienen folgenden Zwecken:
- initrd: Wird als kleine RAM-Disk verwendet, die die eigentliche Kernel-Datei extrahiert und ausführt.
- system.map: Wird für die Speicherverwaltung verwendet, bevor der Kernel geladen wird.
- Konfig: weist den Kernel an, welche Optionen und Module geladen werden sollen.
Module
Ohne Module würde der Kernel nicht viel nützen. Module aktivieren effektiv die Treiber, die für die Kommunikation mit Hardware erforderlich sind, ohne dass der gesamte Systemspeicher belegt wird. Module fügen dem Kernel außerdem Funktionen hinzu, wie z. B. Kommunikation mit Peripheriegeräten, Verwalten von Dateisystemen, Sicherheit usw. Mit dem folgenden Befehl können Sie dem Kernel Module auflisten, hinzufügen und entfernen.
- lsmod listet alle aktuell geladenen Kernelmodule auf.
- insmod wird ein Kernelmodul in den laufenden Kernel laden.
- rmmod entlädt ein Modul aus dem laufenden Kernel.
Der Linux-Kernel kann also mit Hilfe einiger einfacher Befehle recht flexibel sein.
Der aktuelle Kernel
Zum jetzigen Zeitpunkt ist der stabile Linux-Kernel 4.18.5, aber nicht alle Linux-Distributionen enthalten den neuesten Kernel. Die aktualisierte Desktop-Distribution von Elementary OS führt den Kernel 4.15.0-30 aus. Was bedeutet diese Zahl? Im Fall des neuesten Kernels unter Elementary OS bedeutet dies:
- 4 ist die Major-Version
- 15 ist die Minor-Version
- 0-30 ist die Revision
Es ist auch möglich, verschiedene Versionen des Linux-Kernels von kernel.org herunterzuladen und selbst zu kompilieren. Die Kompilierung des Linux-Kernels ist eine Aufgabe, die am besten denjenigen überlassen bleibt, die wirklich wissen, was sie tun. Ein nicht korrekt kompilierter Kernel kann ein System nicht mehr bootfähig machen. Wenn Sie also nicht bereit sind, sich mit der anspruchsvollen Aufgabe des Kompilierens von Code auf dieser Ebene zu beschäftigen, verwenden Sie den Standardkernel, der in Ihrer bevorzugten Distribution enthalten ist und aktualisiert wird.




