Konstantin Ryabitsev 为你解说哪一个 Linux 内核版本号可以被视做“稳定版”,以及你应该怎样选择一个适用你的内核版本号。css
每次 Linus Torvalds 公布 一个新 Linux 内核的主线版本号[1],差点儿都会引发这样的困惑,那就是究竟哪一个内核版本号才是最新的“稳定版”?是新的那个 X.Y,仍是前面的那个 X.Y-1.Z ?最新的内核版本号是否是太“新”了?你是否是应该坚持使用曾经的版本号?html
kernel.org[2] 网页上的信息并不会帮你解开这个困惑。眼下。在该页面的最顶部,咱们看到是最新稳定版内核是 4.15 — 但是在这个表格的如下,4.14.16 也被列为“稳定版stable”,而 4.15 被列为“主线版本号mainline”,很是困惑,是吧?linux
不幸的是,这个问题并很差回答。分布式
咱们在这里使用“稳定”这个词有两个不一样的意思:一是,做为最初公布的 Git 树的名字。二是,表示这个内核可以被视做“稳定版”。用在“生产系统”。post
因为 Git 的分布式特性,Linux 的开发工做在不少 不一样的分叉仓库中[3] 进行。学习
所有的 bug 修复和新特性也是首先由各个子系统维护者收集和准备的。而后提交给 Linus Torvalds,由 Linus Torvalds 包括进 他本身的 Linux 树[4] 中,他的 Git 树被以为是 Git 仓库的 “master”。spa
咱们称这个树为 “主线” Linux 树。.net
候选公布版(RC)翻译
在每个新的内核版本号公布以前。它都要通过几轮的“候选公布”,它由开发人员进行測试并“打磨”所有的这些很是酷的新特性。基于他们这几轮測试的反馈,Linus 决定终于版本号是否已经准备就绪。一般有 7 个每周预公布版本号,但是。这个数字经常走到 -rc8,并且有时候甚至达到 -rc9 及以上。htm
当 Linus 确信那个新内核已经没有问题了,他就制做终于发行版。咱们称这个版本号为“稳定版”,表示它再也不是一个“候选公布版”。
Bug 修复
就像不论什么一个由不是十全十美的人所写的复杂软件同样,不论什么一个 Linux 内核的新版本号都包括 bug,并且这些 bug 必须被修复。Linux 内核的 bug 修复规则很是easy:所有修复必须首先进入到 Linus 的树。一旦主线仓库中的 bug 被修复后,它接着会被应用到内核开发社区仍在维护的已公布内核中。
在它们被考虑回迁到已公布的稳定版本号以前,所有的 bug 修复必须知足 一套重要的标准[5] — 标准的当中之中的一个是。它们 “必须已经存在于 Linus 的树中”。
这是一个 独立的 Git 仓库[6],维护它的用途是回迁 bug 修复。而它也被称为“稳定”树 —— 因为它用于跟踪曾经公布的稳定内核。这个树由 Greg Kroah-Hartman 策划和维护。
最新的稳定内核
所以,无论在何时,为了查看最新的稳定内核而訪问 kernel.org 站点时。你应该去使用那个在大黄色button所说的“最新的稳定内核”。
但是,你可能会惊奇地发现 —— 4.15 和 4.14.16 都是稳定版本号。那么究竟哪个更“稳定”呢?有些人不肯意使用 “.0” 的内核发行版,因为他们以为这个版本号并不足够“稳定”,直到最新的是 ".1" 的为止。
很是难证实或者反驳这样的观点的对与错,并且这两种观点都有同意或者反对的理由,所以,详细选择哪个取决于你的喜爱。
一方面,不论什么一个进入到稳定树的发行版都必须首先被接受进入主线内核版本号中。并且随后会被回迁到已发行版本号中。
这意味着内核的主线版本号相比稳定树中的发行版本号来讲,总包括有最新的 bug 修复,所以,假设你想使用的发行版包括的“已知 bug”最少。那么使用 “.0” 的主线发行版是最佳选择。
还有一方面,主线版本号添加了所有很是酷的新特性 —— 而新特性也给它们带来了数量未知的“新 bug”。而这些“新 bug”在老的稳定版中是不会存在的。
而新的、未知的 bug 是否比旧的、已知的但还没有修复的 bug 更加使人操心呢? —— 这取决于你的选择。只是需要说明的一点是,不少 bug 修复仅仅对内核的主线版本号进行了完全的測试。
当补丁回迁到旧内核时,它们可能会工做的很是好,但是它们很是少作与旧内核的集成測试工做。一般都假定,“曾经的稳定版本号”足够接近当前的确信可用于生产系统的主线版本号。而实际上也确实是这样的,固然。这也更加说明了为何选择“哪一个内核版本号更稳定”是件很是困难的事情了。
所以,从根本上说。咱们并无定量的或者定性的手段去明白的告诉你哪一个内核版本号更加稳定 —— 4.15 仍是 4.14.16?咱们可以作到的仅仅是告诉你,它们具备“不一样的稳定性”。(这个答案可能没有帮到你,但是。至少你明白了这些版本号的区别是什么?)。
学习不少其它的 Linux 的知识,可以经过来自 Linux 基金会和 edX 的免费课程 "认识 Linux" [7]。
via: https://www.linux.com/blog/learn/2018/2/which-linux-kernel-version-stable
做者:KONSTANTIN RYABITSEV[9] 译者:qhwdw 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
LCTT 译者推荐文章
< 左右滑动查看相关文章 >
点击图片、输入文章 ID 或识别二维码直达