使用 LTS 发行版运行 vanilla 内核

使用 LTS 发行版运行 vanilla 内核

当使用 LTS 发行版(例如 Linux mint 17)运行自定义普通内核(例如 3.16.3)时可能会出现什么问题

答案1

只要您不这样做,就不会有太大风险极大地超过发行版上使用的最新版本,尽管即使这样也不会出现明确的问题。主要问题是虽然内核 -> 用户空间ABI假设它是稳定的,但从理论上讲,它可能会出现一个崩溃点。找到 Debian 2.0 的副本并在其上构建 3.17 内核,看看会发生什么;如果它真的构建了(可能不是因为旧的 gcc/libc),如果它继续正常工作,我不会感到惊讶。

某些软件(包括本机 C 库)是使用内核源代码中的头文件进行编译的。再说一遍,这个可能如果这些是截然不同的版本,则会导致问题。由于 C 库是基础,因此您可能会立即注意到任何问题。1 我所说的“很大程度上”并不是指 3.4 和 3.16 之间的区别。如果您当前的发行版曾经运行过 3.x 内核,那么您应该可以正常运行任何 3.x 内核。该发行版在升级内核时当然不会替换 C 库。

简而言之,尽管发行版总是建议您使用他们的源版本,但实际上这不会成为问题。如果您构建了一个普通内核并且由于某种原因它无法工作,是因为你配置错误,并不是因为它缺少发行版添加的任何小调整。我似乎总是最终运行自定义内核(即使我一开始并不打算这样做),并且在十多年的时间里,我在数十台机器上从未遇到过与使用普通源相关的问题。


1. 我唯一一次看到一个真正搞砸的内核——而不是因为配置错误而简单地缺乏功能的内核——它是使用人为的工具链在不同的平台上交叉编译的(即,不是使用本机的)来自目标的库)。这里的“搞砸了”是相对于用户空间而言的;内核启动并工作,但登录后一些其他基本用户区工具立即失败。这并不一定是危险的。这类失败几乎肯定只是失败,就像分段错误一样。没有发生任何邪恶的事情,只是你无法做你希望做的事。内核本身不会发疯,它只是不会正常合作(无论好坏,一切都变得不太可能发生)。

相关内容