我已经安装了两台机器:
在一台机器上,我安装了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 )提供相同的软件包。 由于Debian和Ubuntu相似, 而不是从头开始做所有事情,他只需要拷贝Dave的内核3.2.0-2并提交。 Harry以3.2.0-2的forms发布到Ubuntu 。
哈利然后想对戴夫的工作做一些改变。 他进行更改并发布更新的软件包。 这是版本3.2.0-2-ubuntu1
在这个例子中:
最新版本的kernel是3.2.25
Debian的最新版本的kernel包是3.2.0-2
Ubuntu的最新版本的kernel包是3.2.0-2-ubuntu1