Allgemein

Der Linux-Kernel ist der Betriebssystem-Kern der freien Software namens "Linux" (GNU/Linux) und ist frei verfügbar unter der GNU General Public Lizense (GPL):

Der Linux-Kernel stellt das Basis-System dar, das zwischen dem BIOS der Hardware und der höheren Software liegt und macht die Hardware für die auf dem System laufenden Anwendungen durch ein einheitliches API verfügbar. Der Kernel ist damit z.B. zuständig für Prozessverwaltung, Multitasking, Eingabe/Ausgabe-Operationen auf verschiedenen Geräten wie Festplatten oder Netzwerkkarten, Lastverteilung und Sicherheit. Der Kernel ist noch kein komplettes Betriebssystem im umgangssprachlichen Sinn, da er ohne weitere Programme relativ nutzlos ist.

Der Linux-Kernel ist fast komplett in der Programmiersprache C geschrieben, wobei einige GNU C-Erweiterungen benutzt werden. Eine Ausnahme bilden allerdings die Codeteile für die allererste Startphase, die in Assembler für die jeweilige Architektur geschrieben sind.

Linux ist heute ein hybrid monolithischer Kernel. Dies bedeutet, dass man den größten Teil der Treiber, die sogenannten Module, die nicht während der ersten Startphase (bevor ein Dateisystem eingebunden ist) benötigt werden, als Module konfigurieren kann, die dann dynamisch nachgeladen oder auch während des Betriebs entladen werden können, wenn ihre Funktionalität nicht mehr benötigt wird. Die Treiber im Kernel und die Kernel-Module laufen im Ring 0, haben also unbeschränkten Zugriff auf die Hardware. Einige wenige Module des Kernels laufen im eingeschränkten Ring 3 (Usermodus). Die Level 1 und 2 der x86-Architektur werden vom Linux-Kernel nicht genutzt.

Die Tatsache, dass Linux kein Microkernel ist, war Thema eines berühmten Flame-War zwischen Linus Torvalds und Andrew S. Tanenbaum. Anfang der 1990er Jahre, als Linux entwickelt wurde, galten monolithische Kernels als obsolet (Linux war zu diesem Zeitpunkt noch rein monolithisch, die Möglichkeit, auch Module verwenden zu können, wurde erst später nachgerüstet).

Obwohl Linus Torvalds eigentlich nicht beabsichtigt hatte, einen portierbaren Kernel zu schreiben, hat sich Linux doch in diese Richtung entwickelt, es ist inzwischen das am zweithäufigsten portierte System (nur NetBSD läuft auf noch mehr Architekturen). Das Repertoire reicht dabei von eher exotischen Betriebsumgebungen wie dem iPAQ-Handheld-Computer oder gar Digitalkameras bis hin zu IBMs S/390 zSeries, einem großen und sehr teueren Mainframe-System.

Ursprünglich hatte Torvalds eine ganz andere Art von Portierbarkeit für sein System angestrebt, nämlich die Möglichkeit freie GPL- und andere quelloffene Software leicht unter Linux compilieren zu können. Dieses Ziel wurde bereits sehr früh erreicht und macht sicherlich einen guten Teil des Erfolges von Linux aus, da es jedermann eine einfache Möglichkeit bietet, auf einem freien System freie Software laufen zu lassen.