为什么我应该构建自定义内核?

为什么我应该构建自定义内核?

我的几个同事一直在为他们的工作站和服务器构建定制内核。

构建自定义内核有哪些优点/缺点?

为什么我应该构建自定义内核?

答案1

人们选择手动编译内核的原因有多种。我将尝试列出我能想到的:

  1. 一个经常被引用但经常错误的原因是它会更快地发挥作用。通过为特定系统定制编译器标志,理论上您可以创建更好的字节码。但对于现代编译器来说,这种情况并不常见。
  2. 更改某些编译时标志。例如:编译包含调试信息的内核。尽管这可能不适用于您的情况。
  3. 从内核中删除不必要的部分。但正如 @jordanm 所说,这些部分几乎都是模块,可能并不重要。但在某些情况下,差异可能很大。
  4. 出于学术目的。编译您自己的内核可以帮助您了解有关构建过程的很多信息。此外,人们还可以了解各种配置选项。
  5. 替换某些模块。例如,使用 con kolivas 补丁集、实时补丁集等。
  6. 在某些情况下,特别是在嵌入式场景中,可以向内核添加自定义系统调用。这些也需要自定义编译。
  7. 有些人像我一样,只是喜欢修补系统。并会随机改变一些配置选项,看看最终系统如何响应它们。然而这样的人是很少见的。

答案2

通过创建自定义内核,您可以删除内核中一些不必要的部分,以减少开销(嵌入式设备)或安全漏洞(服务器)。

相关内容