Linux – Kernel

Linux Tux
Linux Tux

Der Kernel ist das Herz eines Betriebsystems und steuert die Speicherverwaltung, den Zugriff auf die Hardware, weist den Anwendungen Speicher zu und verwaltet die Prozesse.

Beim Linux-Kernel wird in verschiedenen Versionsnummern entwickelt und später dann veröffentlicht. Als Grundsatz gilt immer: Gerade Nummern gleich hinter der Hauptnummer (2.2.x, 2.4.x, 2.6.x) sind stabile Anwender-Kernel. linux-2.6.10 ist z.B. ein stabiler Kernel, also für Anwender und den Produktionseinsatz gedacht. Ungerade Nummern nach der Hauptnummer (2.3.x, 2.5.x, 2.7.x) stellen instabile Entwickler-Kernel dar. Diese beinhalten neueren Code und vielleicht auch neue Treiber und Funktionen, die aber noch nicht ausgiebig oder überhaupt noch nicht, getestet worden sind.

Bevor ein neuer stabiler Linux-Kernel von Linus Torvalds veröffentlicht wird, werden sogenannte release candidates von Linus vorgeschoben. Erkennbar an der Endung -rc1, -rc2 -rc3… Zum Beispiel: linux-2.6.11-rc1 ist der geplante Kernel 2.6.11, aber noch in der Testphase befindlich, der dann nach weiteren release candidates und ausgiebigen Tests zum stabilen linux-2.6.11 wird.

Andrew Morten setzt noch experimentellere Kernel mit der Endung -mm1, -mm2,.. drauf. Z.B.: linux-2.6.10-mm1. Diese sind mit neuesten Treibern und Änderungen versehen und sind oft instabil und voll in Entwicklung auf den zukünftigen Kernel und neuen Funktionen zugeschnitten. Das, was früher einmal der RedHat-Entwickler Alan Cox bei älteren 2.2/2.4 Linux-Kernel-Zeiten getan hat. Mittlerweile ist Greg Kroah-Hartman als Verwalter des stabilen Longterm Kernel 3.x.x verantwortlich und veröffentlich diesen.

Wer nach speziellen patches sucht, um bsp. einen neueren Treiber für seine WLAN-Hardware oder fürs ACPI zu finden, kann sich die Linux Kernel Patches auf lwn.net anschauen. Oder direkt auf dem kernel.org FTP Verzeichnis der Entwickler nach inoffiziellen patches schauen. Hier hat jeder Entwickler sein eigenes Verzeichnis mit neuen oder alten Patches. Z.B.: Andrew Morten’s Patches oder den libata SATA-Entwickler Jeff Garzik oder auch Alan Cox Patches -ac.

Um nicht jedesmal den kompletten Kernel-Source (über 40 MB gepackt beim Kernel 2.6) herunterzuladen, gibt es so genannte Patches. Patches beinhalten nur die Änderungen am Quellcode oder auch neue Dateien, die mit den Tools diff und patch in den vorhandenen Quellcode eingespielt werden. Z.B. der patch-2.6.9.bz2 ist ca. 10x kleiner als der komplette Kernel-Source und beinhaltet nur die Veränderungen am Kernel 2.6.8, um diesen auf den neuen Stand 2.6.9 zu bringen.

Um diesen patch anzuwenden, benötigt man bspw. den kompletten Kernel-Source von 2.6.8 (linux-2.6.8.tar.bz2) und den neuen patch-2.6.9.tar.bz2. Patches sollten nur auf einen Quellcode angewendet werden, der nicht von anderen Patches oder der Distribution geändert wurde. Sonst gibt es Fehler, weil vorherige patches eventuell Treiber oder Funktionen schon abgeändert haben. Distributionen passen ihren Kernel immer eigenen Vorlieben an! Mit diesen Kernel-Quellcodes sollte man vorsichtig sein und die von den Distributionen gemachten Änderungen beachten oder gleich einen Vanilla (normal ohne Änderungen) Kernel-Source nehmen.

Offizielle Kernel-Patches können sorglos in der richtigen Reihenfolge aufwärts also: patch-2.6.9, patch-2.6.10, patch-2.6.11,… usw. nacheinander eingespielt werden. Erklärt wird dieses genau in der /usr/src/linux/README im Kernel-Source, Änderungen und Anforderungen zum Betrieb des Linux Kernels in der Datei /usr/src/linux/Documentation/Changes.

Das erfolgreiche Android-System wurde von Google entwickelt und setzt ebenfalls auf einen Linux-Kernel und Open Source Software. Allerdings wurden bei Android viele Techniken und Features des Kernels umgangen oder abgeändert, so dass Android mit einer Linux-Distribution kaum etwas zu tun hat.

Aber auch viele TV-Hersteller wie Samsung, LG Electronics, Sony, Pioneer oder Panasonic sowie Router-/Netzgeräteanbieter wie z.B. AVM mit der FritzBox, nutzen Linux auf der Hardware. Im Alltag an Kassenautomaten, in der Medizin, als Basis für Sicherheitssysteme, Google’s Server-Farmen, bei Facebook als Server und sogar im Weltall bei der ESA, wird Linux als System verwendet.