linux内核如何维护大量的配置选项?

Mik*_*e76 8 linux maintenance configure linux-kernel c-preprocessor

这个问题是关于配置维护和测试.

如果使用错误,#ifdef, #ifndef, #elseif, #elif, #else, #endif预处理器指令不仅会降低C代码的可读性和可维护性,而且还会增加回归错误的风险(例如,特定构建配置在特定时间段内未经过测试).

我想知道linux内核如何能够维持大量的配置选项而不会遇到完全的维护地狱?

我知道这对于各种不同的硬件都是灵活的,但是作为应用程序开发人员,配置选项的绝对数量对我来说非常可怕.

您认为以下哪项陈述是正确的?

  • 大多数供应商仅针对其目标平台使用一组标准配置,因此大多数可能的配置组合既未经过测试也未经过使用
  • 存在一个非常严格的编码准则,允许#ifdef's仅为明显可分离的代码片段引入新的代码,其中有意义的是禁用某个功能(以及负责做出这些决定的合适人员)
  • 每个新内核版本都有很多测试人员,配置相关的错误会及时得到修复,因为大多数内核都可能只是构建回归

编辑:我意识到有测试机器选择随机配置并检查它们是否构建和启动.但是,这些简单的构建/启动测试无法检测到除了破坏一切的错误之外的任何严重的回归