当前位置: 首页 > 科技观察

我应该使用哪些稳定内核?

时间:2023-03-23 10:58:25 科技观察

GregKroah-Hartman是稳定Linux内核的维护主管。很多人问我在他们的产品/设备/笔记本电脑/服务器等上使用什么样的稳定内核。我和其他人一直都有支持,特别是对于那些现在扩展支持的内核,所以这并不容易回答这个问题。在这篇文章中,我将尝试就这个问题发表自己的看法。当然,你可以选择任何你想使用的内核版本,这只是我的建议。和以前一样,这里表达的意见是我自己的。有哪些可用内核?下面是我建议您应该使用的内核列表,从最好到最差。我将在下面详细介绍,但如果你只想得出一个结论,这就是你想要的:为你推荐的内核的评级,从最好到最差,如下所示:你最喜欢的Linux发行版支持的内核***StableVersions***LTS(LongTermSupport)VersionsStillinMaintenanceOldLTSVersionsKernelsDefinitelyDoNotUse:KernelVersionsNoLongerMaintained在上面的列表中给出具体的数字,今天是2018年8月24日,看起来像kernel.org页面上的这个:所以,根据上面的列表,它应该是:4.18.5是***的稳定版本4.14.67是***LTS版本4.9.124、4.4.152和3.16.57是仍在维护中的旧LTS版本4.17.19和3.18.119。仍然在kernel.org网站上供那些仍想使用它们的人使用。很容易,对吧?好的,现在我给出一些选择的理由:Linux发行版内核对于大多数Linux用户来说,最好的解决方案是使用您最喜欢的Linux发行版的内核。就我而言,我更喜欢基于社区的Linux发行版,它使用最新的内核,内核不断滚动升级,而且它也得到开发者社区的支持。这种类型的发行版有Fedora、openSUSE、Arch、Gentoo、CoreOS等。所有这些发行版都使用来自上游的最新稳定内核,并确保根据需要定期修补它们以修复错误。当它有最新的修复程序时(记住所有修复程序都是安全修复程序),这是您可以使用的最安全、最可靠的内核之一。一些社区Linux发行版需要很长时间才能发布新的内核版本,但最终发布和支持的内核都非常好。这些也很容易使用,Debian和Ubuntu就是这样的例子。如果我没有在这里列出您最喜欢的发行版,那并不意味着它们的内核不够好。检查发行版的网站以确保他们的内核包不断更新最新的安全补丁,那么应该没问题。许多人似乎更喜欢旧的、“传统”的发行版模型,使用RHEL、SLES、CentOS或“LTS”Ubuntu发行版。这些发行版选择一个特定的内核版本并使用它多年,如果不是几十年的话。他们向后移植最新的错误修复,有时还有一些新的内核功能,所有这些都只是以一种保持版本号相同的不切实际的方式,即使他们在旧内核版本上做得很好。千变万化。这项工作是一项真正吃力不讨好的工作,分配给这些任务的开发人员为实现这些任务做了一些出色的工作。因此,如果您不想看到您的内核版本号发生变化,请使用这些发行版。它们通常要花一些钱才能使用,当出现问题时从这些公司获得一些支持是值得的。因此,您可以使用的最好的内核是您可以求助并且其他人可以支持您的内核。有了这种支持,您通常已经为此付费(用于企业发行版),而且公司知道他们的责任是什么。但是,如果您不想依赖并想自己管理内核,或者您的发行版不支持您的硬件,那么您应该选择***稳定版:***稳定版**最新的稳定内核是Linux内核开发者社区声明为“稳定”的最新内核。大约每三个月,社区就会发布一个新的内核稳定版本,其中包括对所有新硬件的支持。最新版本的内核不仅提高了内核性能,还包括对内核各个部分的错误修复。在接下来的三个月后,进入下一个内核版本的错误修复将被反向移植到这个稳定的内核中,所以这个内核版本的用户将保证立即获得这些修复。最新的稳定内核通常是主流社区发行版使用的内核,因此您可以确定它是经过测试和广泛使用的内核。此外,内核社区(总共超过4,000名开发人员)将帮助支持此发行版的用户,因为这是他们制作的唯一内核。三个月后,会发布一个新的稳定版内核,你应该更新到它,以确保你的内核始终是最新的稳定版,因为当最新的稳定版内核发布时,不会影响你的当前的稳定内核支持通常要晚几周。如果您在上次LTS(长期支持)发布后购买了最新的硬件,您几乎绝对需要运行最新的稳定内核才能支持最新的硬件。对于台式机或新服务器,最新的稳定内核通常是推荐运行的内核。最新的LTS版本如果你的硬件需要依赖供应商源代码树中的树外补丁来确保正常运行(像大多数嵌入式设备一样),那么最新版本的内核版本就是最新的LTS版本。此版本包含使其成为稳定内核的所有最新错误修复,以及大量用户测试和使用。请注意,这个最新的LTS版本没有新功能并且几乎没有增加对新硬件的支持,因此如果您需要使用新设备,最好的选择是最新的稳定版本内核,而不是内核的最新LTS版本。此外,对于这个LTS版本的用户来说,他也不用担心每三个月进行一次“重大”升级。所以他们会坚持使用这个LTS版本并每年升级,这是一个很好的做法。使用此LTS版本的缺点是,除非您在明年升级到下一个LTS内核,否则您无法获得在最新内核上获得的内核性能提升。另外,如果你对这个版本的内核有问题,你应该做的第一件事就是向任何内核开发人员报告这个问题并询问他们,“最新的稳定内核也是这个问题吗?”而且,您需要注意,对它的支持不会像最新的稳定内核那样容易获得。现在,如果你坚持使用带有大补丁集的内核,并且不想每年升级到新的LTS内核一次,那么也许你应该使用旧的LTS内核:传统上是旧的LTS版本,这些版本是由社区支持2年,有时在主要Linux发行版(如Debian或SLES)依赖它时更长。然而,在过去的一年里,由于谷歌、Linaro、Linaro成员公司、kernelci.org和其他公司对测试和基础设施的大量投资,这些较旧的LTS内核得到了更长时间的支持。最新的LTS版本及其支持时长,这是2018年8月24日在kernel.org/category/releases.html上显示的信息:谷歌和其他人希望这些内核能持续更长时间这样做的原因是由于如今,几乎所有SoC芯片都采用了疯狂的(有些人会说是开箱即用的)开发模型。这些设备在芯片发布前几年就开始了它们的开发周期,并且该代码永远不会合并到上游,最终结果是基于已发布2年的旧内核的新建芯片。这些SoC的代码树通常会添加超过200万行代码,使它们成为我们之前所说的“类Linux内核”。如果2年后,这个LTS版本不再支持,那么社区的支持将立即停止,并且不会有人修复它。这导致数以百万计的非常不安全的设备仍在世界各地使用,这对任何生态系统都不利。由于这种依赖性,这些公司现在要求新设备不断更新到最新的LTS版本——专门为他们发布的版本(例如现在每个4.9.y版本)。一个这样的例子是“AndridO”版本(现在是“AndroidP”版本)附带的新Android设备的内核版本要求指定完全允许使用的内核版本,Android安全更新版本也开始更频繁地在设备上要求这些“.y”版本。我注意到一些制作人现在已经在做这些事情了。索尼就是这方面的一个很好的例子,通过季度安全更新版本将大多数新手机的设备更新到最新的4.4.y版本。另一个很好的例子是一家名为Essential的小公司,据我所知,他们跟踪4.4.y版本的速度比其他任何人都快。使用这样一个旧内核时有一个很大的警告。没有像最新版本的LTS内核那样向后移植到这个内核中的安全修复程序那么多,因为这些使用旧LTS内核的设备的遗留模式是一种更简化的用户模式。这些内核不能用于任何“通用计算”模式,其中使用不受信任的用户或虚拟机,大大削弱了像最近的Spectre那样对旧内核进行修复的能力,如果在某些分支中存在这样的错误.因此,仅在您可以完全控制的设备上使用较旧的LTS版本,或者如果您绑定到非常强大的安全模型(像Android那样强制执行SELinux和应用程序隔离)。绝对不要在具有不受信任的用户/程序或虚拟机的服务器上使用这些旧的LTS内核。此外,如果有社区支持,社区对这些旧LTS内核的支持要比普通LTS内核少得多。如果你使用这些内核,你是靠自己的,你需要自己能够支持这些内核,或者依靠你的SoC供应商来支持你(注意几乎没有人会支持,因此,你付出特别注意...)。不再维护的内核发行版更令人惊讶的是,许多公司只是随机选择一个内核发行版,将其打包到他们的产品中,然后毫不犹豫地将其运送到数十万个组件中。LegoMindstorm系统就是这样一个糟糕的例子,无论出于何种原因,它都会在其设备上随机选择-rc内核分布。-rc发行版是一个正在进行中的发行版,没有Linux内核开发人员认为它适合任何人,更不用说数百万用户了。当然,如果您愿意,可以随意使用它,但请注意,您可能真的是唯一一个使用它的人。社区不会支持你,因为他们不可能专注于所有内核版本特定的问题,所以如果出现问题,你可以自己解决。对于某些公司和系统,这可能没问题,但如果您不为此做计划,请当心“隐藏”成本。总结基于上述原因,这里是我推荐以下内核的不同类型设备的简短列表:笔记本电脑/台式机:***稳定内核服务器:***稳定内核或***具有LTS内核的嵌入式设备:最新的LTS内核或旧的LTS内核(如果使用非常强大和严格的安全模型)至于我,我的机器上运行的是什么内核?我的笔记本电脑运行的是最新的开发内核(即Linus的开发树)加上我正在更改的内核,我的服务器运行的是最新的稳定内核。因此,尽管我支持LTS版本,但我自己并不使用LTS内核,除了在测试系统上。我依靠开发和最新的稳定内核来确保我的机器运行我们所知道的最快和最安全的内核版本。