Was bedeutet die vierte Nummer in der Release-Version?

7

Unter Ubuntu hat die von zurückgegebene Zeichenfolge uname -rimmer die Form x.y.0-z-generic(dh 3.19.0-21-generic). Das Kompilieren des Ubuntu-Kernels führt zu einer Zeichenfolge in der Form x.y.z(dh 3.19.8), der tatsächlichen Version des verwendeten Kernels. Was zrepräsentiert das im ersten Fall? Ist das der EXTRAVERSION-Parameter oder ist es etwas anderes? Wie bekomme ich die Versionszeichenfolge meines Ubuntu-Builds so, dass sie mit der offiziellen übereinstimmt?

Melab
quelle

Antworten:

9

Es ist die ABI-Nummer. Der folgende Link soll Ihnen bei der Beantwortung Ihrer Frage helfen:

https://wiki.ubuntu.com/KernelTeam/KernelMaintenance

Aus dem Kernel / FAQ :

Was unterscheidet den Ubuntu-Kernel vom Upstream-Linux-Kernel?

Ubuntu-Kernel werden nur während des Entwicklungszyklus gegen stabile Releases neu basiert, wobei viele Patches über dem stabilen Tag liegen. Sobald die endgültige Freigabe erfolgt ist, wird der Hauptzweig nie wieder neu basiert. Während normalerweise stabile Updates (nach der Veröffentlichung) angewendet werden, treffen wir manchmal Patch-Entscheidungen, die den stabilen Versionen widersprechen.

Das Beste, was man sagen kann, ist, dass Ubuntu-Kernel nur lose auf Upstream-Stable basieren. Sie müssten das Changelog untersuchen, um genau zu wissen, was in einen bestimmten Kernel gehört.

Mit jeder Ubuntu-Kernel-Version versuchen wir, dem Upstream-Linux-Kernel so treu wie möglich zu bleiben. Es gibt jedoch unvermeidliche Patches, die wir zusätzlich zum Upstream-Linux-Kernel führen, wodurch sich der Ubuntu-Kernel vom Upstream-Linux-Kernel unterscheidet. In diesem Dokument wird versucht, die allgemeinen Patches zu beschreiben, die übertragen werden, und warum: Kernel / FAQ / UbuntuDelta

Was bedeutet eine bestimmte Versionsnummer des Ubuntu-Kernels?

Die offizielle Version eines Ubuntu-Kernels enthält eine Reihe von Informationen, darunter die Basis-Upstream-Version, die aktuelle Ubuntu-ABI-Kennung und die Kernel-Version. (Siehe Wie können wir die Version des laufenden Kernels ermitteln? Um Ihre aktuelle Versionsnummer zu finden.)

Bei einer Version wie 2.6.35-6.9-generic kann dies wie folgt in vier Teile unterteilt werden:

<base kernel version>-<ABI number>.<upload number>-<flavour>

Die Basis-Kernel-Version stellt die Hauptversion dar, auf der der Ubuntu-Kernel basiert. Die ABI-Nummer repräsentiert signifikante Änderungen in der binären Schnittstelle der Kernelanwendung. Die Upload-Nummer ist ein monoton ansteigender Zähler für jeden Upload dieser Basisversion. Das Flavour gibt an, um welche Kernel-Konfigurationsvariante es sich handelt (siehe Was ist ein Kernel-Flavour? ).

Wie können wir die Version des laufenden Kernels bestimmen?

Die offizielle Version eines Ubuntu-Kernels befindet sich in der Datei / proc / version_signature. Diese Datei enthält sowohl die vollständige Ubuntu-Version des Kernels als auch die Hauptversion, auf der sie basiert. Das erste Feld ist immer Ubuntu, das zweite Feld ist die Ubuntu-Kernel-Version und das letzte Feld ist die Upstream-Version:

$ cat /proc/version_signature
Ubuntu 2.6.35-6.9-generic 2.6.35-rc3
$
Terrance
quelle
Ist es Teil des Parameters "lokale Version", der an die Kernel-Version angehängt wird? Wenn ja, warum nicht in der von Ubuntu verwendeten Standardkonfiguration? Und warum unterscheidet sich die Kernel-Version, die in der Versionszeichenfolge enthalten ist, von der tatsächlich verwendeten Kernel-Version?
Melab
@ Melab das ist eine gute Frage. Da bin ich mir wirklich nicht sicher. Ich glaube, ich muss das etwas erforschen. :)
Terrance
Ja. Ich erwarte, dass der Quellcode, den ich herunterlade, eine exakte Kopie dessen ist, was in der offiziellen Version verwendet wird.
Melab
@ Melab das ist eine tolle Frage! +1 für dich! Ich recherchiere alles, um eine Antwort für Sie zu finden! Danke für die Herausforderung! :-)
Terrance
@ Melab Ich glaube ich habe etwas gefunden. Schauen Sie sich debian-handbook.info/browse/stable/sect.kernel-compilation.html an und fahren Sie mit Abschnitt 8.10.4 fort.
Terrance