Linux内核维护者的工作以及为什么他们需要你的帮助

Linux内核维护者的职责及其对您帮助的需要

疲劳的IT工作者

加州蒙特雷:Linux Foundation会员峰会上,Linux内核开发者和Linux每周新闻执行编辑Jonathan Corbet解释了Linux内核维护者的困扰之处,以及为何对于所有Linux的厨师来说已经有点太多。

事实上,许多Linux代码维护者都面临着疲劳。为什么呢?原因有很多。首先,你需要了解Linux内核维护者实际上做什么。

此外:Kubuntu 23.10实现了形式和功能的完美平衡

他们是从成千上万的开发者那里接收代码,检查错误,确保没有回滚,将代码与其他维护者的补丁协调,并将补丁导入主线。哦,还要处理回溯。这是很多工作,但这只是“有趣”的部分。

维护者还必须调解开发者的分歧,并与供应商和用户互动。后者的范围包括与硬件公司交谈,以尝试让他们开源其驱动程序,并协助开发者构建驱动程序,以及帮助用户解决笔记本电脑触摸板出现问题的情况 – 这很可能是因为上述供应商在构建触摸板驱动程序时从未合作。

结果如何呢?正如XFS文件系统的前维护者Darrick Wong在他最近的辞职信中说:“多年前我就已经燃尽了自己,试图兼顾高级开发人员、审阅人员、测试人员、发现者(很糟糕)、发布经理和(有时候)管理联络员的角色……我以为如果能再坚持一段时间,我可以帮助着眼于长期发展,改善用户体验。我错了。”

Wong还补充说:

我的大多数朋友在小公司、非营利组织和地方政府工作。他们报告说他们也面临过度工作、普遍恐惧和愤怒的问题,并且在理解和适应新思想方面遇到困难,而我也在这里观察到了同样的情况。他们看到他们组织的收入和资源短缺之间的直接联系。他们不明白为什么他们所在的公司每年能盈利数百亿美元,而我和我在工作地点附近的同事也面临同样的问题。

在深入讨论之前,让我指出维护者疲劳问题并非是因为Linux Foundation没有为维护者支付薪水。Linux Foundation只有三位维护者:Linus Torvalds、Greg Kroah-Hartman和Shuah Khan。就是这些。

此外:最佳Linux笔记本电脑

这是因为Linux Foundation不是一家编程公司,而是一个为企业、组织和开发者提供资源以构建开源项目的开源基金会。大部分情况下,是公司雇佣维护者。

但正如Corbet所提到的,几乎没有人 – 没有人 – 支付人们成为维护者。维护工作是他们在日常工作之外额外做的工作。公司希望他们的程序员能产生新的代码。他们对为其帮助管理整个Linux或任何其他开源项目的基础架构支付薪水没有兴趣。

结果呢?Cobet引用了Google软件工程师和多个Linux内核项目的维护者Steve Rostedt的话:“作为一个担任全职工作、而非担任维护者职责的维护者,我正努力寻找时间来处理这个问题。”

此外:Linux可能是提高桌面电脑安全性的最佳选择

谁不是呢?我对维护人员感到敬畏。我以极高的生产力而闻名——已发表了超过一万篇文章,而且还在继续——但我根本无法处理他们的工作量。

但是,等等!还有更多。虽然Corbet欢迎Rust语言进入Linux,但这也将给维护人员增加负担。”如果你是一个内核维护人员,而且你要开始接收用Rust语言编写的提交,你必须对这门语言有非常深入的了解…这是对维护人员提出的很大要求,让他们在忙于自己的工作并感到不堪重负的同时学习这种新语言,因此这将成为一个问题。”

另一个问题是对模糊测试工具的增加使用。这些测试程序向程序/堆栈中注入半随机数据以检测错误。这是一种寻找错误和潜在安全漏洞的很好技术。

但最近,一些毫无头绪的人正在使用模糊测试工具寻找“漏洞”。因此,Corbet观察到,“模糊测试工具生成了数千份报告。即使所有这些报告都是正确的,也必须有人去检查或者理解所有这些报告,这项工作落在了维护人员身上。再加上许多这些报告是错误的或重复的,这将浪费大量时间。” 更糟的是,“我们有很多人在运行模糊测试工具并产生报告,却没有真正验证它们是否发现了真正的问题,也没有以任何方式帮助解决这些问题。”

此外:Ubuntu Linux如何潜入高端戴尔笔记本电脑(以及为什么称之为“项目斯普特尼克”)

维护人员需要的就是更多,而且常常是无意义的工作。

那么,答案是什么?解决维护人员人手不足的问题。

Corbet说:

在每年有五千人向内核做贡献的世界中,人手不足可能似乎是一个奇怪的抱怨。但是维护人员工作过度。我们正在为每年创收数亿美元的公司工作,但喜欢雇佣内核维护人员的公司并不总是喜欢给他们时间真正成为内核维护人员。他们需要因维护工作受到评价。

简而言之,“让维护人员能够在工作中负责维护,并给予他们应有的认可,因为这并没有发生,而这正是我们真正需要的。”

此外:我对一种非常适合初学者的新型Linux发行版的想法

公司需要认识到维护不仅仅是Linux,还是其他重要的开源项目的价值。成功的开发不仅仅是关于产生新的代码行。它还包括确保整个代码库作为一个整体正常工作,这意味着给人们时间和资源。

不仅仅是企业需要加强支持。Corbet补充说,开发者需要审查补丁。

Corbet解释说,“如果你向内核提交补丁,你应该审查提交给内核的补丁。如果你所做的只是提交代码,那么你会给维护人员带来负担,而没有完成帮助他们的部分。”

因此,通过程序员和企业的更多支持,可以在它变成比现在更大问题之前,缓解伟大的Linux维护人员过劳问题。