为什么你的发行版仍然在使用“过时的”Linux 内核?

检查一下你的系统所使用的 Linux 内核版本,你十有八九会发现,按照 Linux 内核官网提供的信息,该内核版本已经达到使用寿命终期(EOL)了。

一个软件一旦达到了使用寿命终期,那么就意味着它再也不会得到 bug 修复和维护了。

这自然会引发一连串问题:为什么我的 Linux 发行版会使用一个已经达到使用寿命终期的内核呢?这样做有没有安全风险?我的系统还安全吗?

下面将逐一解答这些问题。

总结

上游内核维护与你的发行版的内核维护是两个不同的概念。

例如,根据 Linux 内核官网,Linux 内核 4.15 版本可能已经达到使用寿命终期了,但是在 2023 年 4 月之前,Ubuntu 18.04 长期维护版本将会继续使用这个版本,并通过向后移植安全补丁和修复 bug 来提供维护。

检查 Linux 内核版本,以及是否达到使用寿命终期

首先,查看你的系统所使用的 Linux 内核版本:

uname -r 

我使用的是 Ubuntu 18.04,输出的 Linux 内核版本如下:

abhishek@itsfoss:~$ uname -r 
5.0.0-37-generic 

接下来,可以到 Linux 内核官网上看看哪些 Linux 内核版本仍然在维护状态。在网站主页上就可以看到相关信息。

你看到的内核版本状态应该类似于下图:

为什么你的发行版仍然在使用“过时的”Linux 内核?

Linux 内核状态

如果你的内核版本没有列在内核官网主页上,就说明该版本已经达到了使用寿命终期。

可以看到,5.0 内核版本并不在列,这说明该内核版本已经不再得到维护。事实上,该版本在 2019 年 6 月就已经达到使用寿命终期了。

不幸的是,Linux 内核的生命周期没有任何规律可循。不是说常规的内核稳定发布版可以得到 X 月的维护、长期维护版本(LTS)可以得到 Y 年的维护。没有这回事。

根据实际需求,可能会存在内核的多个 LTS 版本,其使用寿命终期各不相同。在这个页面上可以查到这些 LTS 版本的相关信息,包括计划的使用寿命终期。

那么问题来了:既然 Linux 内核官网上明确表示 5.0 版本的内核已经达到了使用寿命终期,Ubuntu 为什么还在提供这个内核版本呢?

你的发行版使用的 Linux 内核已经达到了使用寿命终期,但是没关系!

为什么你的发行版仍然在使用“过时的”Linux 内核?

你是否想过,为什么 Ubuntu/Debian/Fedora 等发行版被称为 Linux “发行版”?这是因为,它们“发行” Linux 内核。

这些发行版会对 Linux 内核进行不同的修改,并添加各种 GUI 元素(包括桌面环境、显示服务器等)以及软件,然后再呈现给用户。

按照通常的工作流,Linux 发行版会选择一个内核,提供给其用户,然后在接下来的几个月、几年中,甚至是达到内核的使用寿命终期之后,仍然会继续使用该内核。

这样能够保障安全吗?其实是可以的,因为 发行版会通过向后移植全部的重要修补来维护内核

换句话说,你的 Linux 发行版会确保 Linux 内核没有漏洞和 bug,并且已经通过向后移植获得了重要的新特性。在“过时的旧版本 Linux 内核”上,其实有着数以千计的改动。

如果 Linux 内核网站上说某个内核版本已经达到了使用寿命终期,那么就意味着 Linux 内核的核心维护团队不会再对该内核版本进行升级和打补丁了。

但与此同时,Debian/Ubuntu 或者其他发行版的开发者们会继续工作,通过从(由内核核心团队维护的)更新的内核版本中迁移相关的修改,维持这个老版本的生命力。

重点在于,即使你的发行版看上去是在使用一个已经过时的 Linux 内核,其实该内核也得到了良好的维护,并非是真的过时了。

你是否应该使用最新的稳定内核版本?

为什么你的发行版仍然在使用“过时的”Linux 内核?

新的 Linux 内核稳定版本每隔 2 到 3 个月发布一次,有不少用户跃跃欲试。

实话说,除非有十分充分的理由,否则不应该使用最新版本的稳定内核。你使用的发行版并不会提供这个选项,你也不能指望通过在键盘上敲出 sudo apt give-me-the-latest-stable-kernel 解决问题。

此外,手动安装主流 Linux 内核版本本身就是一个挑战。即使安装成功,之后每次发布 bug 修复的时候,负责更新内核的就会是你了。此外,当新内核达到使用寿命终期之后,你就有责任将它升级到更新的内核版本了。和常规的 Ubuntu 更新不同,内核升级无法通过 apt upgrade 完成。

同样需要记住的是,切换到主流内核之后,可能就无法使用你的发行版提供的一些驱动程序和补丁了。

相关推荐