我对Linux内核版本号感到困惑。我注意到许多Linux发行版没有使用最新的内核,事实上我已经看到一些使用2.4版本。是否有一个原因?除了年龄之外,2.4,2.6,3.2之间是否有任何差异?使用旧内核有什么安全隐患?
答案 0 :(得分:3)
不同的内核具有不同的功能和改进,分发的开发人员会查看他们将支持的功能,然后根据该内核的最稳定支持来决定使用哪个内核。
分发开发者决定使用哪一个,他们会选择他们认为合适的人。
这是软件开发的一个特性,就像询问Java 1.1和Java 1.7是什么一样,除了年龄之外,差异是什么......答案很多。
大多数内核和软件也会有一个安全补丁计划,如果你不这样做,那么用户可以自己修补系统并保持最新状态,因为它们永远不会修复安全问题。
答案 1 :(得分:3)
引入了新功能,旧功能被弃用,最终使内核二进制文件不兼容。
如果您依赖某些不属于主线内核的内核模块(例如,它是专有的并且原始作者不提供更新的模块;或者它是开源的(但从未进入内核)并且没有人愿意花时间迁移代码)
新的主要版本也可能会显着改变系统行为。我记得当从2.4切换到2.6时,许多需要低延迟音频的人(这是我的背景,原谅我)会留在旧内核中,因为新的调度算法在某些情况下表现更差。
答案 2 :(得分:2)
我希望下面的页面能帮助我们理解linux版本编号系统: http://www.linfo.org/kernel_version_numbering.html
来自http://www.tldp.org/FAQ/Linux-FAQ/kernel.html#linux-versioning
的快照Linux版本号遵循长期传统。每个版本有三个数字,即X.Y.Z. “X”仅在发生真正重大变化时递增,使得为一个版本编写的软件不再在另一个版本上正确运行。这种情况很少发生 - 在Linux历史上它只发生过一次。
“Y”告诉你你所处的开发“系列”。稳定的内核在这个位置总是有一个偶数,而开发内核总是有一个奇数。
“Z”指定您拥有的内核的确切版本,并在每次发布时递增。
答案 3 :(得分:1)
有human-readable changelog for the Linux Kernel。
有些人采取的态度是“如果有效 - 不要改变它”。因此,运行旧内核会带来安全隐患 - 但也存在升级可能会破坏某些内容的风险。
答案 4 :(得分:0)
随着内核的改进/改变,它们可能会打破早期版本的预期。如果分发变得不稳定,因为在新版本的内核下有太多软件中断,开发人员可能会选择使用早期版本,直到软件能够处理新内核中的更改。
答案 5 :(得分:0)
通常,二进制映像可能无法在版本号的第一部分或第二部分发生变化的内核之间移植。因此,为了从2.4升级到2.6,还需要升级/重新编译大量的lib和可执行文件。如果您使用闭源应用程序/驱动程序,这可能是一个特殊问题。
大多数Linux发行商将根据对其他功能的安全影响/需求,从较新的内核版本支持端口补丁。如果您无法定期升级整个系统,那么您需要找到一个明确支持长支持周期的分发,并且具有良好的反向移植历史(例如RHEL,SuSE)。