1

我对 Linux 内核版本号有些困惑。我注意到许多 Linux 发行版不使用最新的内核,事实上我看到一些使用 2.4 版。是否有一个原因?2.4、2.6、3.2除了年龄有区别吗?使用旧内核有什么安全隐患?

4

6 回答 6

3

在主要版本(例如 2.4 和 2.6)之间,引入了新功能并弃用了旧功能,最终使内核二进制文件不兼容。

如果您依赖于一些不属于主线内核的内核模块(例如,它是专有的并且原作者不提供更新的模块;或者它是开源的(但从未将其纳入内核),这很重要)并且没有人愿意花时间迁移代码)

新的主要版本也可能显着改变系统行为。我记得当从 2.4 切换到 2.6 时,许多需要低延迟音频的人(这是我的背景,请原谅我)会继续使用旧内核,因为新的调度算法在某些情况下表现更差。

于 2012-04-04T12:04:46.250 回答
3

不同的内核具有不同的功能和改进,发行版的开发人员会查看他们将支持的功能,然后根据该内核的最稳定支持来决定使用哪个内核。

使用哪一个是发行版开发人员的决定,他们会选择他们觉得舒服的那个。

这是软件开发的一个特点,就像问 Java 1.1 和 Java 1.7 是什么,除了年龄有什么区别......答案是很多东西。

大多数内核和软件也将有一个安全补丁计划,如果您不更新他们的系统并保持最新状态,那么您将引发安全问题,因为它们永远不会被修复。

于 2012-04-04T11:53:22.297 回答
2

I hope the below page would help us in understanding the linux version numbering system: http://www.linfo.org/kernel_version_numbering.html

A snap from http://www.tldp.org/FAQ/Linux-FAQ/kernel.html#linux-versioning

Linux version numbers follow a longstanding tradition. Each version has three numbers, i.e., X.Y.Z. The "X" is only incremented when a really significant change happens, one that makes software written for one version no longer operate correctly on the other. This happens very rarely -- in Linux's history it has happened exactly once.

The "Y" tells you which development "series" you are in. A stable kernel will always have an even number in this position, while a development kernel will always have an odd number.

The "Z" specifies which exact version of the kernel you have, and it is incremented on every release.

于 2013-10-16T07:05:48.910 回答
1

Linux Kernel有一个人类可读的更改日志

有些人采取“如果它有效 - 不要改变它”的态度。因此,运行旧内核会带来安全隐患——但升级也可能会破坏某些东西。

于 2012-04-04T12:16:08.927 回答
0

通常,二进制映像可能无法在版本号的第一部分或第二部分发生变化的内核之间移植。因此,为了从 2.4 升级到 2.6,很大一部分库和可执行文件也需要升级/重新编译。如果您使用闭源应用程序/驱动程序,这可能是一个特殊问题。

大多数 Linux 发行商会根据安全影响/对附加功能的需求,支持来自较新内核版本的端口补丁。如果您无法定期升级整个系统,那么您需要找到一个明确支持较长支持周期且具有良好向后移植历史的发行版(例如 RHEL、SuSE)。

于 2012-04-04T12:20:26.060 回答
0

随着内核的改进/更改,它们可能会打破对早期版本的期望。如果发行版因为太多软件在新版本内核下中断而变得不稳定,开发人员可能会选择使用早期版本,直到软件能够处理新内核中的更改。

于 2012-04-04T11:57:59.400 回答