在 Ubuntu 上, 返回的字符串始终是(即)uname -r
形式。编译 Ubuntu 的内核最终会得到一个字符串,其形式是(即),即所用内核的实际版本。在第一种情况下, 代表什么?那是 EXTRAVERSION 参数还是其他东西?如何使我的 Ubuntu 版本字符串与官方版本相匹配?x.y.0-z-generic
3.19.0-21-generic
x.y.z
3.19.8
z
答案1
这是 ABI 编号。以下链接应该有助于回答您的问题:
https://wiki.ubuntu.com/KernelTeam/KernelMaintenance
来自内核/常见问题:
Ubuntu 内核与上游 Linux 内核有何区别?
Ubuntu 内核仅在开发周期内根据稳定版本进行重新定基,许多补丁都位于稳定标签之上。一旦最终版本发布,主分支将不再重新定基。虽然通常会应用稳定更新(发布后),但我们有时会做出与稳定版本相反的补丁决定。
因此,最好的说法是 Ubuntu 内核只是松散地基于上游稳定版本。您必须检查变更日志才能确切了解特定内核中包含的内容。
每次发布 Ubuntu 内核时,我们都尽量忠实于上游 Linux 内核。但是,我们不可避免地会在上游 Linux 内核之上添加一些补丁,这使得 Ubuntu 内核与上游 Linux 内核有所区别。本文档尝试描述所添加的一般补丁集及其原因:内核/常见问题/UbuntuDelta
特定的 Ubuntu 内核版本号意味着什么?
Ubuntu 内核的官方版本会告诉您很多信息,包括基本上游版本、当前 Ubuntu ABI 标识符和内核风格。(请参阅我们如何确定正在运行的内核的版本?查找您当前的版本号。)
给定一个像 2.6.35-6.9-generic 这样的版本,它可以分为以下四个部分:
<base kernel version>-<ABI number>.<upload number>-<flavour>
基本内核版本表示 Ubuntu 内核所基于的主线版本。ABI 编号表示内核应用程序二进制接口的重大变化。上传编号是此基本版本的每次上传的单调递增计数器。风格表示这是哪种内核配置变体(请参阅什么是内核风味?)。
我们如何确定正在运行的内核的版本?
Ubuntu 内核的官方版本位于 /proc/version_signature 文件中。此文件包含内核的完整 Ubuntu 版本及其所基于的主线版本。第一个字段始终是 Ubuntu,第二个字段是 Ubuntu 内核版本,最后一个字段是上游版本:
$ cat /proc/version_signature
Ubuntu 2.6.35-6.9-generic 2.6.35-rc3
$