我已经设置了两台机器:
在一台机器上,我安装了 Ubuntu Precise 12.04 beta 并升级到了最新的软件包。
在另一台机器上,我安装了 Debian Sid Unstable 并将 dist-upgrade 升级到最新的软件包。
在 Ubuntu 机器上 uname -a 读取:
Linux 3.2.0-20-generic #32-Ubuntu SMP 星期四 3 月 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 星期三 3 月 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 个点版本发布,来自 kernel.org 的 3.2.1 .. 3.2.13,以及发布的 3.3。
我的问题是关于我的两台机器上的两个内核的源代码树的历史:
这两个版本的内核是从哪个官方 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”,它与上面的版本号有何关系?
答案1
Ubuntu 内核与上游内核并不相同,尽管版本号可能相似。您可以在Ubuntu 维基这回答了你的第一个和第四个问题:
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 编号表示内核应用程序二进制接口的重大变化。上传编号是此基本版本的每次上传的单调递增计数器。风格表示这是哪种内核配置变体
您还可以查看Ubuntu 到主线内核版本映射有关 ubuntu 内核版本与上游内核版本的更多信息。
答案2
你的问题
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?
我不确定,因为它们(据我所知)是不同的包(通用与 amd64 专用)。
Is the Debian Sid kernel "upstream" of the Ubuntu one?
是的。Debian 是 Ubuntu 的上游。Ubuntu 所做的更改(以 结尾的修订表示,-ubuntuX
其中X
是修订)通常会合并回 Debian
修订编号
tl;dr 版本:连字符后的数字是软件包维护者在新的构建/修补后给出的修订编号。
--
对于 Debian,连字符后的数字是Debian Revision Number
[来源]
对于 Ubuntu,连字符后的数字是,而(如果存在)Debian Revision Number
后的数字是[-ubuntu
Ubuntu Revision Number
源-2]
通常连字符后面的数字是修订版本软件包维护者给。
软件包维护者提供的软件包通常会应用各种类型的补丁(例如修复不兼容性、安全修复、小改进、不同的构建标志等);这就是为什么您的示例中的内核版本 3.2.0 有多个修订版。
仅仅因为一个版本比另一个版本高并不一定意味着它更新、更好或应用了所有相同的补丁。这是因为每个发行版上的软件包维护者可能不同,他们可能(例如)修补频率较低(意味着修订号较低),但仍包含[部分或]所有相同的补丁。
笔记:Ubuntu 是基于 Debian 的,因此 Ubuntu 通常拥有来自 Debian 的所有补丁(并且通常来自较新的 Debian 版本,例如测试版)
包关系
制作了一个软件(例如内核)。它有一个版本(3.2.0). 软件包维护者 (戴夫) 发行版 (Debian)。他根据发行版的指导方针将软件打包成某种格式 (.deb)。这是版本3.2.0-1的核心,又名内核-3.2.0-1。
戴夫没有完全遵循他所打包的发行版的指导原则(Debian),因此必须对软件包进行一些更改。他这样做并提交了他的更新版本。这是版本3.2.0-2内核,又称内核-3.2.0-2。
同时内核3.2.1,3.2.2一直到3.2.25已经发布。Dave 正在开发的软件包仍然基于3.2.0. 他会抽出时间发布3.2.25很快,但还没有。
与此同时,另一个软件包维护者(哈利) 需要为他的发行版安装相同的软件包 (Ubuntu)。 自从Debian和Ubuntu是相似的;他不是从头开始做所有事情,而是直接复制戴夫的内核3.2.0-2并提交。哈利将此发布给Ubuntu作为3.2.0-2。
然后 Harry 想要对 Dave 的工作进行一些更改。他进行了更改并发布了更新后的软件包。这是版本3.2.0-2-ubuntu1
在此示例中:
最新版本kernel
是3.2.25
Debian 的最新版本kernel
软件包是3.2.0-2kernel
Ubuntu 最新版本的软件包是3.2.0-2-ubuntu1