什么是运行Ubuntu所需的最低兼容Linux内核版本?

为什么老内核?

无论出于何种原因,您可能会被迫运行另一个内核而不是Ubuntu提供的内核。 对于与特定预编译内核模块兼容的内核,甚至可能需要几年时间,基于Xen /容器的VPS提供程序可能会强制您使用他的内核等。

我有这个问题很长一段时间了,但今天又引发了这个问题。

在这种情况下,能够说出你是否可以责怪内核的问题,或者你是否应该在你的情况下尝试设置更新版本的Ubuntu是非常有用的。

政策,文件?

我特别感兴趣的是开发人员/ QA的目标是什么,关于LTS版本和更新稳定运行LTS内核。 一些密切相关的问题:

  • 与早期内核版本兼容的策略是什么? 例如,没有接受错误报告,必须使用所有内核版本回到并包括之前的LTS等。
  • 示例,实际上:在Precise上运行Lucid的内核时,我有多大可能遇到麻烦?
  • 软件在多大程度上与内核(udev,gvfs,mdadm等)相比更接近于在发布版本提供的版本之外进行测试?
  • Desktop / Server版本在这方面有何不同?

最明显的地方是发行说明 。 但是,除了对Ubuntu风味内核的更新/更改之外,这并没有提及与其他内核的兼容性,而在笔记的其他部分中提到了与内核相关的function,例如

软件RAID现在支持坏块管理(MD)。

难道Ubuntu根本不打扰这些情况,还是我错过了这方面的资源? 除了发行说明之外,我在某种程度上使用了Google使用关键字:需要Ubuntu 12.04 minimal kernel version required以及几种变体。 然而,似乎没有对这些结果作出任何陈述。 我现在发现这个问题只是作为相关资源而出现的。 我确实找到了这个答案 ,很难,看起来非常有前景,但它是关于特定的问题/环境而不是真正的服务器/桌面使用。

用户空间与内核

我知道大多数用户软件不应该担心内核版本,但对于VPN软件或与硬件交互的应用程序(如上面的那个)来说会变得更加复杂,例如V4L2,网络管理器,Alsa等。

Debian vs Ubuntu

Debian对此非常清楚。 已经为Wheezy,我们知道如果你依赖于udev,它将需要2.6.26才能正确运行它的发行说明 (正在进行中):

wheezy中的udev版本需要2.6.26或更高版本的内核[…]

我不是要求的

我非常了解从较新版本到当前LTS版本为较新内核提供的反向端口。 这个问题恰恰相反。

请避免任何讨论,例如“为什么要运行旧内核?” – 你有时候没有选择,这不是我们想要的,而是如何处理这种特定的情况。

问题:与早期内核版本兼容的策略是什么? 例如,没有接受错误报告,必须使用所有内核版本回到并包括之前的LTS等。

我是Ubuntu BugControl团队的成员,我可以说只考虑非过时的Ubuntu软件包中的错误。 如果您安装自己的内核,或者如果您使用其他发行版中的软件包并报告错误,那么您的错误将会失效。 看到这两个股票回复:

  • 关于报告发布的软件的过时版本
  • Ubuntu不提供的软件包

此外,Ubuntu内核团队有一个您可能会感兴趣的常见问题解答 :

内核团队为所有当前活动版本的Ubuntu内核提供支持(安全更新等),我们不支持任何非Ubuntu内核。 可以在“版本”页面上找到当前活动版本的完整列表。 对于长期支持(LTS)版本,桌面内核在服务器内核之前从支持中删除,这反映在“版本”页面中。

然而,这只是说支持哪些内核,而不是哪些内核被认为是兼容的

问题:示例案例,实际上:在Precise上运行Lucid的内核时,我有多大可能遇到麻烦?

这是一个非常难以回答的问题。 特别是因为它实际上取决于您将使用的应用程序/模块。 我们可以将这个问题限制在“标准”Ubuntu桌面或服务器上,但即使这样,也很难回答:没有足够的文档,而且可用的信息很少。

例如,要检查来自Quantal的udev是否与Lucid内核兼容,您必须查看M,N,O,P,Q发行说明,内核更改日志和udev更改日志。 然后继续进行另一个包,例如libc,upstart等。 所有这些软件包都依赖于特定的内核版本,并且所有这些软件包都不是由Ubuntu直接控制的(从某种意义上说,不是Ubuntu团队决定了这些软件包的兼容性策略)。

问题:软件在何种程度上与内核(udev,gvfs,mdadm等)相比更接近于在发布版本提供的版本之外进行测试?

Ubuntu测试团队和Ubuntu质量团队不测试Ubuntu未提供的内核。 证据是对于过时的内核没有测试用例和测试活动。

问题:桌面/服务器版本在这方面有何不同?

他们没有任何不同。 桌面和服务器版本都使用相同的内核,这部分certificate了这一点。

问题: Ubuntu是不是不打扰这些情况,或者我错过了这方面的资源?

Ubuntu对这些案件并不感兴趣。 不支持内核版本,但与它兼容只是额外的工作,几乎没有什么好处。

无论人们喜欢与否,Ubuntu的一个实践是期待并尝试支持最新的技术,而不是最过时的技术。 你可以找到一个例子,当Ubuntu CD被放弃以支持DVD,或者已从Quantal中删除Unity 2d时。

此外,这是我认为最重要的一点,Ubuntu对分发有效的软件并不感兴趣,但是软件可以运行并得到支持 。 这两个术语之间存在重要差异。

唯一正式支持的内核是随Ubuntu版本一起提供的内核。 如果由于使用不同的内核而遇到问题,您将独立完成。 如果怀疑某个问题与使用非标准内核有关,则会要求您至少测试一个标准内核以查看它是否真正相关。

使用旧内核获得任何有效和无效的准确列表可能导致太多潜在问题; 你只需要亲自尝试一下。

做出有根据的猜测,我不认为更老的内核甚至被认为是任何Ubuntu版本。 ……他们为什么会这样? “必需的内核”就是发行版附带的内核。

为什么要在新版本上使用较旧的内核,而不是旧的版本呢?

AFAIK,内核团队向前看,而不是向后看。 他们从较新的版本中反向更新的内核,例如,Quantal内核被反向移植到Precise,但不是相反。