Linux Kernel
Aus LinWiki.de
Ein Kernel oder Kern ist der zentrale Bestandteil eines Betriebssystems. In ihm ist die Prozess- und Datenorganisation festgelegt, auf der alle weiteren Softwarebestandteile des Betriebssystems aufbauen. Der Linux Kernel ist der zentrale Baustein eines GNU/Linux Systems.
Inhaltsverzeichnis |
[Bearbeiten] Geschichtliches
[Bearbeiten] Einführung
Am 17. September 1991 postete Linus Torvalds die Ergebnisse seiner Studien zu einem Unix-ähnlichen Betriebssystem in die Newsgruppe »Minix«. Sicherlich hatte er etwas Aufmerksamkeit erhofft, aber ob er mit einer solchen Resonanz gerechnet hatte?
Diese Version 0.01 implementierte gerade mal einen rudimentären Kern, wurde aber von zahlreichen Minix-Anhängern binnen kurzer Zeit soweit ergänzt, dass er bald seinem unmittelbaren Vorgänger, dem Minix-System, den Rang ablief.
Linux kam genau zur richtigen Zeit. Schon seit mehreren Jahren arbeitete man bei der Free Software Foundation an einem freien Betriebssystem. Diese von Richard Stallman initiierte Vereinigung hatte es sich zum Ziel gesetzt, kostenlose und im Quelltext erhältliche Software für jederman zu erstellen. Die Anzahl verfügbarer Programme wuchs stetig, jedoch ließ man sich mit dem Kern der Sache, einem an Unix angelehnten Betriebssystem, ungewöhnlich viel Zeit. Man legte das Augenmerk auf ein ausgereiftes Konzept, testete verschiedene Ansätze, aber die Implementierung kam einfach nicht auf Touren.
Just in dieser Phase betrat Linux das Feld. Es erfüllte genau die Anforderung der FSF, es war frei, kostenlos und die existierende Software der FSF, allgemein bekannt als GNU/GNU-Software, lief ohne wesentliche Änderungen auf dem neuen System. Viele FSF-Anhänger sahen in der Verwendung von Linux den Stein der Weisen.
Fazit der ganzen Geschehnisse war, dass mit Linux bald ein ausgereiftes Unix für den PC, also den Privatbereich, zur Verfügung stand, ebenso wie eine Fülle von Anwendungen, die zumindest aus funktioneller Sicht sich nicht hinter dem Standard kommerzieller Produkte zu verstecken brauchten.
[Bearbeiten] Die Methodik der Versionsnummern
Wie in der Informatik üblich, fing man auch bei der Versionsnummernvergabe des Linuxkernels mit der Version 0.x an. Die 0.x Reihe des Linux Kernels galt als stabil, jedoch nicht als produktiv einsetzbar. Dieses sollte sich mit der Version 1.x ändern, welche die erste offiziell stabile Version mit den von anderen Unixen bekannten Eigenschaften war.
Schließlich setzte sich für den Kernel eine Versionsbezeichnung bestehend aus drei Nummern durch.
- Kernel x.y.z
- Die erste Nummer kennzeichnet eine "epochale" Version und wird nur erhöht, wenn sich Grundlegendes geändert hat.
- Kernel x.y.z
- Die zweite Nummer bezeichnet »wichtige« Neuerungen. I.A. sollte ein Kernel 2.x durch eine Version 2.y beliebig ausgetauscht werden können, ohne dass es das installierte System berührt (leider ändern sich doch hin und wieder einzelne Schnittstellen, so dass die eine oder andere Komponente den Dienst versagt). Wichtig ist die zweite Nummer als Kennzeichnung des Status. Bei einer geraden 2. Nummer handelt es sich um einen stabilen Kernel; die ungerade Zahl steht einer Entwicklerversion voran.
- Kernel x.y.z
- Die dritte Nummer beschreibt schließlich den »Patch« des Kernels. D.h., dass sich an dem Kernel nur »Kleinigkeiten« geändert haben. Meist handelt es sich um ausgemerzte Fehler oder den Ersatz eines Algorithmus durch eine ausgefeiltere Variante.
- Kernel x,y,z,a
- Die Kernel-Entwickler haben sich vorerst darauf geeinigt, ab der Kernel Version 2.6.11.1 - parallel zur Weiterentwicklung - eine neue stabile Version des zuletzt freigegebenen Kernels zu veröffentlichen. Diese sollen eine Bezeichnung mit vier Zahlen nutzen, was einer schnelleren Ausbesserung von Sicherheitslöchern dienen soll.
[Bearbeiten] Meilensteine der Kernelentwicklung
| Datum | Version | Aktuell | |
|---|---|---|---|
| 17. September | 1991 | v 0.01 | - |
| 5. Oktober | 1991 | v 0.02 | - |
| 13. März | 1994 | v 1.0.0 | - |
| 6. April | 1994 | v 1.1.0 | - |
| 7. März | 1995 | v 1.2.0 | - |
| 12. Juni | 1995 | v 1.3.0 | - |
| 9. Juni | 1996 | v 2.0.0 | 2.0.40 |
| 30. September | 1996 | v 2.1.0 | - |
| 26. Januar | 1999 | v 2.2.0 | 2.2.26 |
| 11. Mai | 1999 | v 2.3.0 | - |
| 4. Januar | 2001 | v 2.4.0 | 2.4.33.3 |
| 23. November | 2001 | v 2.5.0 | - |
| 18. Dezember | 2003 | v 2.6.0 | 2.6.18 |
Hier soll nur kurz auf die wichtigsten Daten der Kernelgeschichte eingegangen werden. Eine ausführlichere Aufarbeitung erfolgt im Kapitel Kernel Geschichte der Linuxfibel.
- Am 17. September 1991 stellte Linus Torvalds die erste Version (Version 0.01) seines Kernels auf der Newsgruppe comp.os.minix vor. Die erste unterstützte Plattform war die i386 Architektur.
- Im Januar 1992 wurde schließlich mit der Version 0.12 der erste »stabile« Kernel veröffentlicht. Unter ihr liefen bereits Programme wie der Compiler gcc, die Bourne Again Shell und der Editor Emacs.
- Mit Version 0.96 spendierte man Linux ein eigenes, im Vergleich zu Minix wesentlich effizienteres Dateisystem - das ext. Auch kamen die Unterstützung von SCSI, Parallelport, Unix Sockets und dem MSDOS-Dateisystem hinzu.
- Im März 1994 erschien der Kernel Version 1.0. Er galt als die erste offiziell stabile Version des Linux Kernels. In den vielen Entwicklerversionen der 0.99.x Reihe wurden viele Neuerungen in den Kernel integriert. Diese waren u.a.
- das ext2 und das virtuelle Dateisystem,
- die Unterstützung des TCP/IP-Protokolls und erster Ethernet-Karten,
- die Unterstützung für Sound,
- und die Integration des Network File System
- Seit der im März 1995 erschienenen Kernel-Version 1.2 werden auch andere Architekturen unterstützt. Hierzu zählen zu diesem Zeitpunkt die Architekturen Alpha und Sparc.
- Im Juni 1996 wurde schließlich die Version 2.0 veröffentlicht. Für den "großen Sprung" auf eine neue Versionshauptnummer gab es viele Gründe:
- mit der Version 2.0 wurden folgende Plattformen unterstützt: alpha, i386, mips, ppc, sparc, M68K (Amiga) und Atari,
- Kernelmodule können nun dank »kerneld« (Kernel Deamon) dynamisch vom Kernel ge- und entladen werden,
- zu den bis dato unterstützen Dateisystemen kamen nun auch vfat (Windows95/98), umsdos (Linux auf einem Windows-Laufwerk installieren), Netware Core Protocol (Novell) und SMB (Samba) hinzu,
- die Netzwerkfähigkeiten wurden deutlich erweitert: So wurden Firewalls, IP-Tunneling, -Masquerading und Multicast-Routing nun direkt vom Kernel unterstützt. Für den Privatanwender war die ISDN-Anbindung ein wesentlicher Aspekt,
- eine starke Erweiterung erfuhr die Hardwareunterstützung; auch tauchten das Advanced Power Management (APM) und - in späteren Patchversionen - RAID0 im Kernel auf
- und für viele Leute sehr wichtig: Der Pinguin Tux wurde zum offiziellen Linux-Maskottchen erklärt.
- Im Januar 1999 erschien Version 2.2. Ein Wechsel auf die C-Bibliothek glibc2 wurde vollzogen. Auch andere interne Vorgänge, wie z.B. die Moduleverwaltung, wurden optimiert.
bitte noch mit Version 2.4 und Version 2.6 fortfahren
[Bearbeiten] Der Aufbau des Linux Kernels
dieser Abschnitt muss noch geschrieben werden
[Bearbeiten] Kernel anpassen und installieren
Ob es nun Notwendigkeit oder nur die pure Lust ist, einen eigenen Kernel zu installieren, es gibt viele Gründe, sich den Kern seines eigenen Systemes selber zu übersetzen. War früher nur richtigen Fachleuten das Kernel bauen vorbehalten, sollte es heutzutage mit ein wenig Hintergrundwissen ein Leichtes sein, sich seinen individuellen Kernel selber zu bauen.
wird fortgesetzt

