Ubuntu 发布的内核和上游内核有什么区别?

Ubuntu 发布的内核和上游内核有什么区别?

主 Linux 内核和 Ubuntu 使用的内核在功能集方面有哪些区别?为什么 Ubuntu 从主内核分支出来而不是直接使用主内核?

答案1

上游内核(当我们提供它们时,称为主线内核) 只是指定版本的上游内核,添加了非常少的配置更改,以便在 Ubuntu 安装中使用它们时出现的问题很少。

这些内核与 Ubuntu 版本发布的内核之间还有许多其他区别配置更改、源补丁*并且在某些情况下编译模块和硬件支持。

除上述内容外,底层代码与上游代码只有很小区别。

*:在大多数情况下,源补丁是对内核默认行为的更改。这些更改包括但不限于:黑名单、视频怪癖表、内置模块、尚未出现在 Linus 树或稳定队列中的源更改等。

源补丁是团队用来引入配置选项的工具,这些选项是支持特定 Ubuntu 版本发布的大量软件所必需的。在许多情况下,它们是这些应用程序正常运行所必需的。这与上游内核之间的根本区别在于,纯上游内核不是特定于发行版的。

因此,配置并非旨在确保某些应用程序按预期运行。这些配置的存在是为了为内核提供特定事物的可更改性。此外,使用怪癖使我们能够识别需要内核提供特定事物的硬件,一旦检测到这些事物,我们就可以进行设置。

这是 Linux 的主要功能之一,也是多年来我们能够在如此多不同的平台上运行的原因之一。有时,怪癖和源补丁会相互引起问题。在这些时候,我们努力通过更改底层内核行为来缓解问题。在许多情况下,这些更改直到发布后才会进入上游,这在很大程度上是由于需要正确编写修复代码、记录所做的工作、测试更改以及进行各种其他测试和压力测试。

在这些情况下,将要上游的补丁作为源补丁进行传输,其方式与稳定版补丁和尚未进入 Linus 树的补丁非常相似。增量审查规范的链接应作为对当前 Ubuntu 内核 Natty 版本进行审查的内容的参考。

答案2

Linux 内核正在不断开发中。在打包下一个版本时,Ubuntu 团队有时会说:“好的,我们将采用当前的内核。”有时您可能会在存储库中获得一个新内核,以便在当前发行版中使用。

这个地方可以读起来很有趣,但技术性很强。你也许能够弄清楚上游正在发生什么,以及你目前错过了什么(但最终会得到什么)。

需要注意的是,与任何软件一样,内核很容易出现错误,而且经常会出现退化(新添加的内容会破坏旧功能)。在我看来,现在的内核在新功能方面并没有真正让我感到兴奋。例如,我很乐意运行两年前的内核。

答案3

您可以下载 Ubuntu 的 git 树,并使用图形查看器查看 git 树。它将向您显示 Ubuntu 的所有补丁。 https://wiki.ubuntu.com/Kernel/Dev/KernelGitGuide

另一个可能的选择是订阅 ubuntu-kernel 邮件列表。他们的所有工作都发布在那里,你可以了解他们做什么。但是,流量很大,在我看来,很烦人。(但是,嘿,这是他们的列表)

相关内容