Wenn Sie schon lange Linux-Benutzer sind, wissen Sie, dass Linux-Distributionen eindeutige Versionen haben und jede Version einen bestimmten Codenamen hat. Der Linux-Kernel hat auch unterschiedliche Versionsnummern, die als Identifikator für die Serie dienen, zu der der Kernel gehört. Es gibt jedoch einen Unterschied zwischen der früheren Bildung von Kernel-Versionen und der heutigen Benennung durch Linus Torvalds.

Am Ende werden Sie mit dem Linux-Kernel-Versionierungsschema besser vertraut sein und mehr fühlen bequemes Lesen von Kernel-Versionsnummern und Identifizieren der verschiedenen Funktionen, die mit a verbunden sind bestimmte Freigabe.

Die traditionelle Linux-Kernel-Versionierung

Als Linus anfing, den Kernel zu entwickeln, bestand das verwendete Versionierungssystem einfach aus einem inkrementierenden Variablenschema, beginnend mit Null (0.x). Anfangs war Linus der einzige, der an dem Projekt arbeitete, und dieses Versionierungssystem reichte aus, um neue Kernel-Releases zu dokumentieren und zu verteilen.

instagram viewer

Hier sind einige der Kernel-Veröffentlichungen, die diesem Namensschema folgten:

Bildnachweis: Wikipedia

Später, als mehr Entwickler anfingen, zum Projekt und zur Anzahl der Revisionen und Patches beizutragen deutlich angestiegen, wurde entschieden, dass dieses Versionierungsschema nicht für Software wie a geeignet ist Kernel. Und ab Version 1.0 hat Linus ein neues Schema mit einigen zusätzlichen Variablen eingeführt.

Einführung eines anschaulicheren Versionierungssystems

1994, mit der Veröffentlichung des Linux-Kernels 1.00, begann Linus mit der Verwendung eines neuen Versionierungssystems, das drei Variablen in der Syntax verwendete: "ABC". Diese Variablen (a, b und c) repräsentieren jeweils die Hauptversion, die Nebenversion und die Revisionsnummer für die jeweilige Kernel-Version.

Nehmen Sie als Beispiel den Linux-Kernel 1.1.95. Sie können es als erste Hauptversion, erste Nebenversion und 95. Revision dekodieren.

Damals bezeichneten gerade Minor-Versionsnummern stabile Kernel-Releases, während ungerade Entwicklungs-Releases darstellten. Es war wichtig, getrennte Zweige zu haben, damit Entwickler neue Funktionen im Kernel hinzufügen und testen konnten, ohne den Stable-Zweig zu beeinträchtigen.

Kernel-Entwickler fügen neue Funktionen im Entwicklungszweig hinzu und verbessern sie, bis sie stabil genug sind, um als LTS-Kernel veröffentlicht zu werden. Der LTS-Kernel 3.2 wurde entwickelt, indem die neuen Funktionen in Version 3.1 stabilisiert wurden, und ähnlich ein neues Der Entwicklungskernel 3.3 verzweigte sich aus 3.2 heraus, um Platz für neue Funktionen zu machen, die dann eingeführt würden Linux 3.4.

Ab Linux-Kernel 2.4 bezeichnet eine vierte Variable im Kernelnamen die Patch-Releases. Man kann sagen, dass Version 2.4.37.10 die zehnte Patch-Veröffentlichung für Kernel 2.4.37 ist.

Ein Patch-Release bedeutet nicht die Anzahl der Probleme, die in einem Kernel-Release gepatcht werden. Stattdessen wird gezählt, wie oft ein aktualisierter Kernel nach dem Patchen der gefundenen Probleme veröffentlicht wurde.

Bis Linux 2.6 wurde dieses Versionierungssystem verwendet und es war effektiv, eine bestimmte Version von anderen zu unterscheiden. Das Hinzufügen von Revisionszahlen und Patch-Releases in der Versionsnummer war beschreibend, bedeutete jedoch, längere und komplexere Kernel-Versionen zu haben. Und wieder einmal war ein neues und besseres Schema erforderlich.

Wie werden Linux-Kernel-Versionen jetzt benannt?

Mit der Linux-Version 3.0 hat Linus die vierte Variable aus der Versionsnummer gestrichen. Nun wird die Kernel-Version nach folgender Syntax gebildet: ABC, wobei a, b und c die Anzahl der Hauptversionen, Nebenversionen und Überarbeitungen sind. Dieses Versionierungsschema ähnelt dem, das zwischen den Kernel-Releases 1.0 und 2.4 verwendet wurde.

Aufgrund von Fortschritten in Versionskontrollsysteme, konnten Mitwirkende jetzt nahtlos an stabilen Zweigen arbeiten und neue Funktionen hinzufügen, ohne versehentlich die bereits funktionierenden, stabilen Versionen zu zerstören. Daher ist die Verwendung von geraden und ungeraden Nebenversionsnummern für Stable- und Produktionszweige der Kernel wurde nach der Einführung der Kernel-Version 4.0 und der ersten LTS-Version (4.1) überflüssig das 4.x Serie hatte eine ungerade Nebenversionsnummer.

Möglicherweise bemerken Sie auch einige Zeichen am Ende der Versionsnummer, wie z rcX. Review-Kandidaten (oder kurz „rc“) sind Preview-Releases und Pre-Patch-Versionen des Kernels, die die Entwickler patchen müssen, um Bugs und andere Probleme zu beseitigen. Diese sind ein Ersatz für die Entwicklungsversionen, die zuvor durch eine ungerade Nebenversionsnummer gekennzeichnet waren.

Obwohl diese Versionen speziell für Kernel-Entwickler reserviert sind, damit sie die gemeldeten Probleme beheben und neue Funktionen implementieren können, können Sie das auch Laden Sie diese Kernel-Review-Kandidaten herunter und testen Sie sie, wenn Sie möchten, aber es wird im Allgemeinen nicht empfohlen, wenn man bedenkt, dass hier der größte Teil der Entwicklung stattfindet das passiert. Die neueste Vorschauversion des Kernels zum Zeitpunkt des Schreibens dieses Artikels ist 5.19-rc6.

Um neue Versionen zu erstellen, wird die vorhergehende Variable inkrementiert, wenn der Wert einer Variablen eine bestimmte Zahl erreicht. Beispielsweise wird die Hauptversion immer dann auf die nächste Ziffer aktualisiert, wenn sich die Anzahl der Nebenversionen 20 nähert.

Linus erwähnt in seine 5.0-Kernel-Entwicklungsmail dass er einfach die Hauptnummer auf fünf aktualisiert hat, weil die Anzahl der Nebenversionen zu groß wurde, um sie an Fingern und Zehen zu zählen (20!). Ebenso gem Kernel.org, wird die Hauptversionsnummer erhöht, wenn die Zahl nach dem ersten Punkt "zu groß" aussieht. Die endgültige Kernel-Version in der 3.x Serie war 3.19 und das letzte Major 4.x Kernel-Serie war 4.20, die dann auf 5.0 hochgestuft wurde.

Seit Version 3.0, der Linux-Kernel folgt diesem Versionierungsschema und es hat sich seit drei großen Kernel-Releases (versions 3.x, 4.x, und 5.x).

Identifizieren einer Linux-Kernel-Version anhand von Versionsnummern

In Anbetracht der schieren Anzahl der veröffentlichten Linux-Kernel-Versionen ist ein geeignetes System erforderlich, um eine bestimmte Version von den anderen zu identifizieren und zu unterscheiden. Mit dem neuen Kernel-Versionierungsschema können Kernel-Versionen jetzt effektiv identifiziert und verglichen werden, und es ist leicht zu erkennen, welche Kernel-Version die neueste ist und welche früher veröffentlicht wurde.

Wenn Sie die derzeit auf Ihrem System installierte Linux-Kernel-Version überprüfen möchten, können Sie dies mit uname tun, einem Linux-Befehl, mit dem Sie systembezogene Informationen auflisten können. Abhängig von der von Ihnen ausgeführten Distribution kann sich die von uname angezeigte Versionsnummer von den tatsächlichen Linux-Kernelversionen unterscheiden.