Linux之父炮轰英特尔:称其代码乱得像垃圾场
近日,Linux创始人Linus Torvalds对英特尔工程师Jani Nikula提交的一段DRM驱动代码提出了尖锐批评。他认为,该代码中包含的hdrtest测试文件不仅会显著拖慢内核编译的速度,还会在系统中生成大量冗余文件,这无疑增加了开发者的工作负担,也降低了开发效率。这种做法显然与Linux社区一贯追求高效简洁的原则背道而驰。 在我看来,软件开发的核心在于优化和精简,而不是增加不必要的复杂性。Jani Nikula的代码虽然可能是出于某种功能需求,但没有考虑到整体性能的影响,这反映出部分工程师在提交代码时缺乏全局观。Linus Torvalds的批评无疑是及时且必要的,它提醒所有开发者,在追求功能扩展的同时,必须始终将代码质量和性能放在首位。只有这样,才能确保Linux内核始终保持其卓越的技术领先地位。
Linus Torvalds 在邮件列表中对 Harri Nikula 提交的代码表达了强烈的不满,称其为“令人作呕的垃圾”(disgusting turds),并明确要求将这些代码从常规编译流程中移除。这一事件再次引发了关于开源项目代码质量与审核机制的讨论。 在我看来,Torvalds 的激烈措辞虽然显得有些直白甚至尖锐,但这也反映了他对代码质量的高度敏感以及对团队合作的严格要求。作为 Linux 内核项目的领导者,他的态度无疑传递了一个重要的信号:任何提交的代码都必须经过严格的审查,确保其不仅功能正确,还要符合项目的整体架构和规范。这种高标准对于一个全球开发者共同维护的核心项目来说至关重要。 然而,这也提醒我们,如何平衡代码贡献者的积极性与代码质量的要求是一个永恒的话题。一方面,开源社区需要欢迎每一位愿意参与贡献的人;另一方面,也需要设立有效的准入门槛,避免因粗制滥造的代码拖累整个项目的发展。或许,未来可以探索更加细化的代码评审流程,既能让新人快速上手,又能保证核心代码的质量不受影响。
Torvalds指出,这些测试文件不但会减缓全模块配置(allmodconfig)的编译进程,还可能在include目录中遗留不必要的文件。
Linus Torvalds 指出,此类测试应当作为一种可选功能存在,而不是强制每位开发者都必须执行编译操作。为此,他暂时将这一功能标注为“BROKEN”状态,并敦促英特尔团队对现有的测试方案进行重新规划与优化。在我看来,Torvalds 的决定非常合理且必要。在软件开发过程中,灵活性始终是关键所在,尤其是在涉及复杂的测试流程时,过于强制性的要求可能会拖慢整个项目的进度。同时,这也提醒各大技术团队,在面对复杂问题时,及时调整策略比固守原有计划更为重要。希望英特尔能够借此机会完善其测试机制,为未来的协作奠定更坚实的基础。
此次争议围绕Linux内核中的Direct Rendering Manager(DRM)子系统展开,该子系统是Linux内核中用于管理GPU渲染的核心模块,广泛应用于硬件加速、视频播放等图形处理任务。目前,这一争议特别聚焦于Intel Xe显卡驱动的相关部分。 在我看来,这场争议不仅反映了开源社区对技术细节的高度关注,也揭示了硬件厂商与开源开发者之间在协作模式上的潜在矛盾。Intel作为重要的硬件供应商,在推动其Xe架构显卡进入主流市场的同时,也需要与Linux社区紧密合作以确保驱动程序的质量和稳定性。然而,这种合作往往伴随着复杂的技术挑战和利益权衡。 此外,随着越来越多的用户依赖Linux系统进行专业工作或日常使用,DRM子系统的稳定性和性能显得尤为重要。因此,无论是硬件厂商还是开源开发者,都需要更加开放和透明的合作方式,以解决当前存在的分歧,并为用户提供更好的体验。这不仅是对技术本身的考验,更是对整个开源生态体系的一次检验。
Torvalds 表示,现有的实现方法会导致文件名自动补全功能失效,即便将其列入 gitignore 文件也仅仅是回避了问题,并未真正解决。他提议,这类代码不应被纳入默认的编译流程,而是应以独立的“makedrm-hdrtest”测试命令的形式存在。
Nikula在回复中表示会将测试文件迁移至.hdrtest子目录,并借助kconfig选项对额外检查项进行隔离。这一技术讨论凸显了Linux社区对代码质量的高标准要求。