Linux-Kernel-Versionierung: Debian Sid gegen Ubuntu Precise

9

Ich habe zwei Maschinen eingerichtet:

Auf einem Computer habe ich Ubuntu Precise 12.04 Beta installiert und dist-aktualisiert auf die neuesten Pakete.

Auf dem anderen Computer habe ich Debian Sid Unstable installiert und auf die neuesten Pakete aktualisiert.

Auf dem Ubuntu-Computer lautet uname -a:

Linux 3.2.0-20-generic # 32-Ubuntu SMP Do 22. März 02:22:46 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux

Auf dem Debian-Computer lautet uname -a:

Linux 3.2.0-2-amd64 # 1 SMP Mi Mar 28 13:28:04 UTC 2012 x86_64 GNU / Linux

Meine Frage betrifft die Kernelversionen:

Ubuntu: 3.2.0-20-generic
Debian: 3.2.0-2-amd64

Version 3.2 von Linux wurde veröffentlicht am:

linux-3.2.tar.gz         05-Jan-2012 00:40   94M

Seitdem wurden 13 Punkte veröffentlicht, 3.2.1 .. 3.2.13 von kernel.org und 3.3.

Meine Frage bezieht sich auf die Geschichte des Quellbaums der beiden Kernel auf meinen beiden Maschinen:

Aus welcher Version des offiziellen Kernels von kernel.org stammen diese beiden Versionen des Kernels?

In welchem ​​Verhältnis stehen die Quellen des Debian Sid-Kernels zum Ubuntu Precise-Kernel?

Sind die Änderungen, die an den kernel.org-Quellen vorgenommen wurden, um 3.2.0-2-amd64 zu produzieren, auch in 3.2.0-20-generic unter Ubuntu vorhanden?

Ist der Debian Sid-Kernel dem Ubuntu-Kernel "vorgelagert"?

Was bedeutet die vierte Versionsnummer (nach dem ersten Strich) "2" bei Debian und "20" bei Ubuntu - und in welcher Beziehung steht sie zu den oben genannten?

Andrew Tomazos
quelle

Antworten:

5

Der Ubuntu-Kernel ist nicht mit dem Upstream-Kernel identisch, obwohl die Versionsnummern möglicherweise ähnlich sind. Sie können über den Ubuntu-Kernel im Ubuntu-Wiki lesen, das Ihre erste und Ihre vierte Frage beantwortet:

Beta-2 enthält den Ubuntu-Kernel 3.2.0-20.33, der auf dem stabilen Linux-Kernel v3.2.12 basiert.

In den häufig gestellten Fragen zum Ubuntu-Kernel wird die Versionsnummerierung wie folgt beschrieben:

Bei einer solchen Version 2.6.35-6.9-generickann 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 Kernel-Anwendungsschnittstelle. Die Upload-Nummer ist ein monoton ansteigender Zähler für jeden Upload dieser Basisversion. Die Variante gibt an, um welche Kernel-Konfigurationsvariante es sich handelt

Sie können auch die Zuordnung der Ubuntu-zu-Mainline-Kernelversionen überprüfen, um weitere Informationen zu Ubuntu-Kernelversionen im Vergleich zu Upstream-Kernelversionen zu erhalten.

pkhamre
quelle
Sofern ich nicht falsch verstanden habe, lauten die Fragen Is the Debian Sid kernel "upstream" of the Ubuntu one?( Ja ) und From which release of official kernel.org kernel are those two versions of the kernel derived?( 3.2.0 ) - nicht, welche kernel.org-Version der Ubuntu-Version am ähnlichsten ist oder welche Patches aus der kernel.org-Version enthalten sind, die meiner Meinung nach nur zur Komplikation dienen Das Thema.
syserr0r
2

Deine Fragen

From which release of official kernel.org kernel are those two versions of the kernel derived?
Kernel Version 3.2.0 .

What is the relationship of the sources of the Debian Sid kernel to the Ubuntu Precise one?
Sie sind beide Debian-Versionen (keine Ubuntu-Änderungen), das Debian-Paket (3.2.0-2) ist Revision 2 , das Ubuntu-Paket (3.2.0-20) ist Revision 20 .

Are the changes made from the kernel.org sources to produce 3.2.0-2-amd64 also present in 3.2.0-20-generic on Ubuntu?
Ich bin mir nicht sicher, da es sich (afaik) um verschiedene Pakete handelt ( generisch oder amd64-spezifisch ).

Is the Debian Sid kernel "upstream" of the Ubuntu one?
Ja . Debian ist Ubuntu vorgeschaltet. Von Ubuntu vorgenommene Änderungen (angezeigt durch Revisionen, die -ubuntuXmit Xeiner Revision enden ) werden normalerweise wieder in Debian zusammengeführt

Revisionsnummern

tl; dr version : Die Nummer nach dem Hypen ist die Revisionsnummer, die der Paketbetreuer nach neuen Builds / Patches angegeben hat.

- -

Für Debian ist die Zahl nach dem Bindestrich die Debian Revision Number[ Quelle ].
Für Ubuntu ist die Zahl nach dem Bindestrich die Debian Revision Numberund die Zahl nach dem -ubuntu(falls vorhanden) die Ubuntu Revision Number[ Quelle-2 ].

Im Allgemeinen ist die Zahl nach dem Bindestrich die Revision, die der Paketbetreuer angibt.

Auf Pakete von Paketverwaltern werden häufig Patches verschiedener Art angewendet (z. B. zur Behebung von Inkompatibilitäten, Sicherheitskorrekturen, geringfügigen Verbesserungen, unterschiedlichen Build-Flags usw.). Aus diesem Grund verfügt die Kernel-Version 3.2.0 in Ihrem Beispiel über mehrere Revisionen.

Nur weil einer höher als der andere ist, heißt das nicht unbedingt, dass er neuer, besser oder mit denselben Patches versehen ist. Dies liegt daran, dass es sich möglicherweise um verschiedene Paketbetreuer handelt, die das Paket in jeder Distribution betreuen, und dass sie (zum Beispiel) weniger häufig patchen (was eine niedrigere Versionsnummer bedeutet), aber immer noch [einige oder] alle gleichen Patches enthalten .

Hinweis : Ubuntu basiert auf Debian, daher verfügt Ubuntu häufig über alle Patches von Debian (und häufig aus einer neueren Debian-Version wie dem Testen).

Paketbeziehungen

Es wird eine Software erstellt (z. B. Kernel). Dies hat eine Version ( 3.2.0 ). Ein Paketbetreuer ( Dave ) für eine Distribution ( Debian ). Er nimmt die Software und verpackt sie in einem Format (.deb) gemäß den Richtlinien der Distribution. Dies ist Version 3.2.0-1 des Kernels , auch bekannt als Kernel-3.2.0-1 .

Dave hat die Richtlinien für die Distribution, für die er verpackt ( Debian ), nicht ganz befolgt und muss daher einige Änderungen am Paket vornehmen. Er tut dies und reicht seine aktualisierte Version ein. Dies ist Version 3.2.0-2 des Kernels, auch bekannt als Kernel-3.2.0-2 .

In der Zwischenzeit wurden Kernel 3.2.1 , 3.2.2 bis 3.2.25 veröffentlicht. Das Paket, an dem Dave arbeitet, basiert immer noch auf 3.2.0 . Er wird bald 3.2.25 veröffentlichen, aber noch nicht.

Gleichzeitig benötigt ein anderer Paketbetreuer ( Harry ) dasselbe Paket für seine Distribution ( Ubuntu ). Da Debian und Ubuntu ähnlich sind; Anstatt alles von Grund auf neu zu machen, nimmt er einfach eine Kopie von Daves Kernel 3.2.0-2 und reicht sie ein. Harry veröffentlicht dies für Ubuntu als 3.2.0-2 .

Harry möchte dann einige Änderungen an Daves Arbeit vornehmen. Er nimmt die Änderungen vor und veröffentlicht sein aktualisiertes Paket. Dies ist Version 3.2.0-2-ubuntu1

In diesem Beispiel: Die
neueste Version von kernelist 3.2.25 Die
neueste Version des kernelPakets für Debian ist 3.2.0-2. Die
neueste Version des kernelPakets für Ubuntu ist 3.2.0-2-ubuntu1

syserr0r
quelle
Ihre Angaben sind falsch. Die Ubuntu-Kernel-Version ist nicht unbedingt die gleiche wie der Upstream-Kernel von kernel.org. Der Ubuntu 3.2.0-20.33-Kernel basiert auf dem Upstream 3.2.12-Linux-Kernel.
pkhamre
Es ist die Version des Kernels, auf der das Paket basiert. Aus dem Ubuntu-Wiki selbst. Änderungen vom Mainline-Linux-Kernel werden von den Paketbetreuern häufig als Patches abgerufen, aber das war nicht die Frage.
syserr0r
Die Situation ist etwas matschig. Gemäß den häufig gestellten Fragen zum Ubuntu-Kernel ( wiki.ubuntu.com/Kernel/… ) kann man die Basis-Kernel-Version aus der Ubuntu-Version ableiten. In der Realität muss jedoch / proc / version_signature überprüft oder die Liste unter kernel.ubuntu.com/~kernel-ppa/info/kernel-version-map.html konsultiert werden . Spezifische Änderungen finden Sie in der Datei /usr/share/doc/linux-image-*/changelog.Debian.gz und vergleichen Sie sie mit wiki.ubuntu.com/Kernel/FAQ/UbuntuDelta oder rufen Sie den Ubuntu-Git-Baum ab.
Mikko Rantalainen