Linux内核版本控制:Debian Sid vs Ubuntu Precise

我已经安装了两台机器:

在一台机器上,我安装了Ubuntu Precise 12.04 beta,并且升级到了最新的软件包。

在另一台机器上,我安装了Debian Sid Unstable和dist-upgrade到最新的软件包。

在Ubuntu机器uname -a读取:

Linux 3.2.0-20-generic#32-Ubuntu SMP Thu Mar 22 02:22:46 UTC 2012 x86_64 x86_64 x86_64 GNU / Linux

在Debian机器上uname -a读取:

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

我的问题是关于内核版本:

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

Linux版本3.2发布于:

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

从那时起,已经有13个版本发布了,3.2.1来自kernel.org,3.2.13发布了。

我的问题是关于我的两台机器上的两个内核的源代码树的历史:

从哪个版本的官方kernel.org内核得到这两个版本的内核派生?

Debian Sid内核的来源与Ubuntu Precise的关系是什么?

从kernel.org的源代码生成3.2.0-2-amd64的变化是否也出现在Ubuntu的3.2.0-20-generic上?

Debian Sid内核是Ubuntu的“上游”吗?

第四个版本号是什么意思(在第一个破折号之后)在Debian的情况下是“2”,在Ubuntu的情况下是什么意思是“20”,以及它与上述有什么关系?

Ubuntu内核与上游内核不一样,尽pipe版本号可能相似。 你可以在Ubuntu Wiki中阅读关于Ubuntu Kernel的内容,它回答你的第一个和第四个问题:

Beta-2包含基于v3.2.12上游稳定Linux内核的3.2.0-20.33 Ubuntu内核。

Ubuntu的内核常见问题描述版本编号如下:

给定一个类似2.6.35-6.9-generic版本,可以将其分解为以下四个部分:

<base kernel version>-<ABI number>.<upload number>-<flavour>基本内核版本表示Ubuntu内核所基于的主线版本。 ABI编号表示内核应用程序二进制接口的重大变化。 上传号码是这个基本版本每次上传的单调增加的计数器。 风味表示这是哪个内核configuration变体

您也可以检查Ubuntu到Mainline内核版本映射 ,以获取有关ubuntu内核版本与上游内核版本的更多信息。

你的问题

From which release of official kernel.org kernel are those two versions of the kernel derived?
内核版本3.2.0

What is the relationship of the sources of the Debian Sid kernel to the Ubuntu Precise one?
它们都是Debian版本(没有Ubuntu的变化),Debian软件包(3.2.0-2)是版本2 ,Ubuntu软件包(3.2.0-20)是版本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?
我不确定,因为它们是(afaik)不同的软件包( generic vs amd64 specific )。

Is the Debian Sid kernel "upstream" of the Ubuntu one?
是的 。 Debian是Ubuntu的上游。 Ubuntu所做的更改(以修订版结尾-ubuntuX表示,其中X是修订版)通常会合并到Debian中

修订号码

tl; dr版本 :hypen之后的数字是软件包维护者在新版本/补丁程序之后给出的修订版本号。

对于Debian,连字符后面的数字是Debian Revision Number [ source ]
对于Ubuntu,hypen后面的数字是Debian Revision Number-ubuntu后面的-ubuntu (如果存在)是Ubuntu Revision Number [ source-2 ]

连字符后面的数字一般是包维护者给出的修改。

软件包维护者的软件包通常会有各种各样的补丁(例如修复不兼容性,安全修复,小改进,不同的生成标志等)。 这就是为什么你的内核版本3.2.0有多个版本。

仅仅因为一个人比另一个人高,并不一定意味着更新,更好或者应用了所有相同的修补程序。 这是因为他们可能是不同的软件包维护人员,他们在每个发行版上都会照看软件包,他们可能(例如)打补丁的频率较低(意味着较低的版本号),但是仍然包含一些或全部相同的补丁。

注意Ubuntu基于Debian,因此Debian经常使用Debian提供的所有补丁(通常来自Debian等新版本,如testing)

包关系

制作一个软件(例如内核)。 这有一个版本( 3.2.0 )。 一个发行版( Debian )的包维护者( Dave )。 他根据发行版的指导,将软件打包成一个格式(.deb)。 这是内核的版本3.2.0-1 ,又名kernel-3.2.0-1

戴夫并没有完全遵循他正在打包的发行版( Debian )的准则,因此必须对该软件包进行一些更改。 他这样做,并提交他的更新版本。 这是内核的版本3.2.0-2 ,又名kernel-3.2.0-2

同时内核3.2.1,3.2.2一直到3.2.25都已经发布。 Dave正在开发的包仍然是基于3.2.0的 。 他会很快发布3.2.25,但还没有。

同时,另一个软件包维护者( Harry )需要为他的发行版( Ubuntu )提供相同的软件包。 由于DebianUbuntu相似, 而不是从头开始做所有事情,他只需要拷贝Dave的内核3.2.0-2并提交。 Harry以3.2.0-2的forms发布到Ubuntu

哈利然后想对戴夫的工作做一些改变。 他进行更改并发布更新的软件包。 这是版本3.2.0-2-ubuntu1

在这个例子中:
最新版本的kernel3.2.25
Debian的最新版本的kernel包是3.2.0-2
Ubuntu的最新版本的kernel包是3.2.0-2-ubuntu1