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

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

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

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

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

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

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

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

解决方法

我正在直接使用 Linux内核和“Das u-boot”.到目前为止,我没有足够的经验,但我会试一试.

据我所知,你所谈论的配置文件实际上是由多个文件组成的,从大多数常见的东西,如CPU架构等,到非常详细的东西,如RAM频率和那种东西.

是的,这是非常的,我的意思是非常可怕,但正如你所说,非常好(至少是体面的文件)项目必须继续下去.此外,你必须意识到有大量人在处理那里的所有东西.当然,没有人能够认为自己是一切真正的鉴赏家.

不是100%肯定,但我认为你是对的,大多数供应商至少使用一些标准配置.例如,假设大多数智能手机具有相同的通用硬件架构(CPU,GPU,RAM等),因此无需自定义所有内容.

也是,主要代码充满了

#ifdef,#ifndef,#endif

这显然有它的优点和缺点.但这是关于C(和C)的美妙事物之一,它允许控制一切.有时退出授权,有时候是真正的噩梦.

没有什么可以添加测试:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


查找全部容器的日志文件 $ sudo find /var/lib/docker/containers -name *.log 查看日志位置 $ docker inspect --format='{{.LogPath}}' <container_name> 实时查询内容 $
Linux日志文件中列属性的详细解析
在Linux系统中没有duf命令,如何有效地管理磁盘空间?
深入探讨EncryptPad在Linux操作系统中的功能和优势
原理和应用场景:Linux中ttyload工具的工作原理和实际用途
深度解析SELinux的三种策略类型
评估Linux系统性能的ttyload工具使用效果
分享在Linux系统中检测SSH版本的方法
介绍Linux平台上的数据加密工具EncryptPad
在Linux系统中,如何查看和诊断块设备信息?
在Linux环境下如何查看块设备信息?
探索Linux操作系统下的数据加密工具EncryptPad
学会在Linux系统中查看硬盘信息
分析SELinux:原理与实践
掌握SELinux策略类别
技巧:有效解读和管理Linux日志文件
查看Linux系统中的所有用户
了解Linux系统中各种不同类型的日志文件
深入理解Linux PS命令
方法:在Linux操作系统中查看用户