23个核心开源项目中有11个仅靠1至2人维护
摘要
一项针对23个关键开源项目的研究发现,其中11个项目仅依赖一到两名常规贡献者,凸显出系统性的资金与可持续性风险,xz、sudo及时区数据库等案例便是明证。
暂无内容
查看缓存全文
缓存时间: 2026/10/10 03:28
# 23 个核心开源项目中,有 11 个由 1 到 2 个人维护
来源:https://linuxstans.com/11-of-23-core-open-source-projects-run-on-1-or-2-people/
你手机上的每一个闹钟、登机牌和[日历](https://linuxstans.com/best-calendar-apps-for-linux/)邀请,都依赖一个文本文件——它记录了各国政府历年来发布的所有时区规则。一位名叫 Paul Eggert 的 UCLA 讲师在业余时间维护着这个文件,而至少 40 亿台 Android 手机和 iPhone 都在读取它。他是一名开源维护者,而处于这种境况的人远不止他一个。
每次安全事故之后都会被翻出来的那幅 xkcd 漫画(第 2347 号),画的是现代基础设施的高塔平衡在一块小积木上,而这块积木由一个人默默维护,无人感谢。一位网名为 u/Mastbubbles 的 Reddit 用户着手验证这幅画与现实的距离有多近。他下载了手机、浏览器和服务器所依赖的 23 个项目的完整历史,统计了过去一年中贡献了 10 次以上变更的每一个人,并将结果以《支撑互联网的人们》(*The People Holding Up the Internet*)为题发布在 sheets.works 上。该帖在 r/linux 上首日获得了约 1,100 个赞。
23 个项目中,有 11 个项目的日常维护工作由 1 到 2 个人完成。本文接下来将介绍这些人是谁、有多少资金到达他们手中,以及 r/linux 社区对这些数据提出了哪些质疑。
## 核心发现速览
- **23 个项目中有 11 个**项目在 2025 年 10 月 7 日至 2026 年 10 月 7 日之间,只有一到两个人做出了 10 次以上的变更。
- **xz** 只有一位常规贡献者 Lasse Collin,他在 2025 年写下了 97% 的变更。分析显示,2024 年后门事件之后没有任何新资金注入。
- **sudo** 在 2008 年至 2018 年间的 5,409 次变更中,有 5,408 次来自同一个人——Todd Miller。
- **八个项目**,包括时区数据库、SQLite、zlib、xz 和 bash,在分析所检查的任何公开资助渠道中均未发现拨款或赞助。
- **资金总是追着灾难跑。** 2014 年 Heartbleed 漏洞爆发后两个月内,Linux 基金会筹集了 540 万美元,而年捐款仅约 2,000 美元的 OpenSSL 获得了带薪开发者和一次安全审计。
## 统计方法说明
作者获取了每个项目的完整公开历史,保留了 2025 年 10 月 7 日至 2026 年 10 月 7 日之间编写的变更,并排除了合并提交和机器人提交。在该时间窗口内拥有 10 次以上变更的人被计为常规贡献者。关于资金方面,"无公开拨款"意味着来自 Sovereign Tech Agency、Alpha-Omega、Open Collective 或 GitHub Sponsors 的资助均未发现。这并不意味着从未有人为这些人付过钱。文末的局限性一节会说明该方法遗漏了哪些内容。
## 单人维护的项目:xz、sudo、bash 和时区数据库
### xz:后门事件让一位维护者走进聚光灯下
居住在芬兰的 Lasse Collin 维护着 xz——几乎所有 Linux 服务器上都有的压缩工具。2022 年 6 月,他告诉邮件列表,这是一个无报酬的业余项目,而他能投入的精力一直受限,主要原因是长期的心理健康问题。此前数月里,一些自称 Jigar Kumar 和 Dennis Ens 的账号一直在公开抱怨项目进展太慢,而一位名叫 Jia Tan 的贡献者则不断提交有用的补丁。Collin 将更多权限给了 Jia Tan。
到 2023 年,Jia Tan 的贡献数量已超过 Collin,为 304 比 172。2024 年 2 月,Jia Tan 发布的版本中暗藏了一条进入 Linux 服务器的通道。微软工程师 Andres Freund 于 3 月 29 日发现了它——他的 SSH 登录占用了超出正常的处理器时间——此时大多数 Linux 系统尚未发布该版本。通往 sshd 的路径经过了发行版补丁:多个发行版将 OpenSSH 链接到 libsystemd,而 libsystemd 会拉入 liblzma,后者是 xz 的一部分。至今没有人查出 Jia Tan 的真实身份。
Collin 又回到了独自一人的状态。他在 2025 年写下了 97% 的 xz 变更,而 2026 年该项目只有一位常规贡献者。分析显示后门事件后没有任何新资金——这与 OpenSSL 在 Heartbleed 之后的遭遇恰好相反(下文详述)。
### 时区数据库:一位讲师、一位备份、40 亿台设备
Eggert 自 2012 年起担任时区文件的官方协调人,并在 UCLA 教授计算机科学。Android、iOS 和大多数服务器都会读取该文件来确定当地时间。2026 年 9 月 29 日发布的 2026e 版以曼尼托巴省于 10 月 31 日起永久采用 -05 时区的变化开篇,提醒温尼伯的手机用户在 11 月 1 日不要将时钟回拨。
过去一年中该文件共有 251 次变更,其中 Eggert 贡献了 218 次,Tim Parenti 贡献了 28 次。2020 年,Eggert 在邮件列表中请求让 Parenti 作为自己的备份,以防退休或其他变故使他无法继续工作。
这份工作也曾面临法律风险。2011 年,一家占星软件公司起诉了 Eggert 和 Arthur David Olson——后者于 1986 年在美国国立卫生研究院创建了该数据库——声称该数据库的部分历史内容来自该公司拥有的一本地图集。邮件列表和下载站点被迫下线,直到当月晚些时候 IANA 接管。电子前哨基金会(EFF)为两人提供了免费辩护,该公司于 2012 年 2 月撤诉。如今 Eggert 没有赞助页面,分析也未发现该项目有任何公开拨款。
### sudo:榜单上资金最充足的单人项目
Todd C. Miller 自 1990 年代初起维护 sudo——这个让你在 Mac 或 Linux 服务器上获得管理员权限的命令。该工具本身可以追溯到 1980 年左右纽约州立大学布法罗分校。分析显示,在 2008 年至 2018 年间的 5,409 次变更中,Miller 贡献了 5,408 次。
2026 年 2 月,他在自己的网站上写道,他"正在寻找赞助商"以维持 sudo 的维护和开发。在 The Register 报道了这条消息后,该项目在 Open Collective 上的年度预算达到了约 61,700 美元,GitHub 上也有 30 人对其进行了赞助。这使 sudo 成为本次统计中资金最充足的单人项目——这本身就说明了榜单上其余项目的处境。
### bash:一个潜伏了 25 年才被报告的漏洞
Chet Ramey 自约 1990 年起维护 bash——Linux 上的 shell,以及 2003 年至 2019 年间 Mac 上的 shell。他一边做这份维护工作,一边在俄亥俄州凯斯西储大学网络组任职。2014 年 9 月,Stéphane Chazelas 报告了一个漏洞:任何人都可以通过发送特殊构造的文本在服务器上执行命令。该漏洞于 9 月 24 日以 Shellshock 之名公开,波及数亿台机器。引入漏洞的那行代码在 1989 年 8 月 5 日被合入 bash。分析显示,bash 公开历史中的每一次变更——包括官方修复——都有 Ramey 的署名。
### 触角极广的小型库
- **libjpeg-turbo** 负责在 Android 手机以及 Chrome 和 Edge 中解码 JPEG 图像。用姓名首字母署名邮件的 DRC 写下了今年 98% 的变更,并将该项目作为一人公司运营。他曾写道,通用资助大约能覆盖每月 8 到 10 小时的工作。
- **zlib** 在 PNG 图像、Git、Android、iPhone 和 Chrome 内部进行数据压缩。Mark Adler 于 1995 年参与共同编写了它,他的另一份工作是管理 NASA 的"勇气号"火星车前往火星的旅程。他和一位名为 Vollstrecker 的贡献者完成了去年的大部分工作,而 Adler 没有赞助页面。
- **HarfBuzz** 决定了印地语、阿拉伯语、泰米尔语以及世界上大多数文字中字母如何连接和排列,服务于 Android、Chrome、Firefox、Edge 和 Kindle。Behdad Esfahbod 写下了今年 85% 的变更,另有五个人做常规工作。
- **SQLite** 存在于每一部 Android 手机、iPhone 和 Mac 中,存在于 Windows 10 和 11 中,也存在于每一个主流浏览器中。去年共有四个人对其做了变更。该项目估计全球有超过一万亿个数据库在使用中,团队通过 Hipp 的公司出售支持服务来为工作提供经费。
- **core-js** 让新的 JavaScript 代码能在旧浏览器中运行,据其作者统计,约有一半的全球最繁忙的网站在使用它。当 Denis Pushkarev 募捐时,每月只筹到约 57 美元。2019 年,他在无偿全职开发该项目时遭遇了一场致命的交通事故——他本人对此有过描述——最终导致他入狱。他自 2020 年 1 月起服刑约十个月,其间提交几乎停滞,而今年他写下了 95% 的变更。
## 资金到来时会发生什么:curl 和 OpenSSL
榜单上的项目并非都只靠一个人运转。Daniel Stenberg 于 1996 年在瑞典创建了 curl,如今它为手机、汽车、电视和 Windows 运输数据——Windows 自 2018 年起内置了 curl。今年有十一个人对 curl 做了常规贡献,Stenberg 在 2025 年回顾中写道,其他所有人如今在代码中添加的行数都已超过他。他全职从事这项工作,因为企业付费购买支持服务。该项目每年还通过 Open Collective 获得约 89,700 美元的收入,Stenberg 在 GitHub 上有 64 位赞助者,德国的 Sovereign Tech Agency 为其工作支付了 19.5 万欧元。
OpenSSL 是一个更久远的教训。2014 年 4 月,Heartbleed 漏洞让任何人都能从约 17% 的可信安全服务器(Netcraft 数据)的内存中读出密码和私钥。那周,OpenSSL 基金会主席 Steve Marquess 写道,年捐款只有约 2,000 美元,并告诉 NPR 只有一个人在全职做这个项目。两个月内,Linux 基金会从科技公司筹集了 540 万美元。OpenSSL 获得了两名带薪开发者和一次审计,其常规贡献者人数从 2013 年的 6 人增长到 2014 年的 14 人。到 2026 年,这个数字是 32 人。
将两者并排对比,结果差异鲜明。Heartbleed 之后,OpenSSL 的常规贡献者在一年内翻了一倍以上。而 xz 后门事件之后,分析没有发现可比的资金注入,xz 仍然只有一个人。
## 开源资金:谁拿钱,谁拿不到
分析中最大的两个公开资助方是德国的 Sovereign Tech Agency——自 2022 年以来已资助约 90 个开源项目——以及 Alpha-Omega 基金,去年发放了近 600 万美元,其中大部分给了 Python 和 Ruby 等基金会的安全工程师。两者都将资金拨付给能够申请并报告的组织。这有利于有组织靠山的项目,而不利于只有一个邮件列表的个人。
**Sovereign Tech Agency 对上榜项目的资助:**
| 项目 | 资金 |
|---|---|
| log4j | €596,160 |
| FFmpeg | €437,930 |
| OpenSSL | €405,888 |
| OpenSSH | €200,000 |
| curl | €195,000 |
时区数据库、SQLite、zlib、libjpeg-turbo、HarfBuzz、xz、bash 或 nghttp2 均未查到公开拨款。Eggert、Collin、DRC 和 Adler 也没有赞助页面。
资金确实通过其他渠道到达了一些人手中。Nick Wellnhofer 在维护 libxml2 的十年间筹集了六位数(低位)的资金,而自 2026 年 8 月起,慕尼黑市政府支付 Sebastian Pipping 从事 expat 的开发工作,期限最长六个月。
这里需要关注背景。"无公开拨款"是一个狭义的检验标准,而且其中不少人有本职工作:Eggert 在 UCLA 教书,Ramey 在大学网络组工作。公开记录确实显示的是:23 个项目中有 8 个从上述四个渠道一分钱都没拿到。
### libxml2:一次成功的交接
libxml2 为 Android 手机、iPhone 和 Chrome 解析 XML,分析估计其覆盖 56 亿台手机和计算机。直到 2025 年 12 月,其 README 还承认自己是业余爱好者的软件,由一位志愿维护者负责,且存在大量安全漏洞。维护该项目约十年的 Nick Wellnhofer 于 2025 年 9 月宣布卸任,此后仍持续修复回归问题,并于 12 月将自己从维护者名单中移除。约十二小时后,新的维护者被加入。此后大部分工作由 Daniel Garcia Moreno 完成。
## 为什么你只在出事时才听到他们的名字
看看哪些名字上了头条:Heartbleed、Shellshock、Jia Tan。发现这些漏洞的人会被提及——Stéphane Chazelas 因 Shellshock,Andres Freund 因 xz——而那些花了多年时间让代码持续运转的人,很少被提及。
有些人刻意避免被关注。DRC 用姓名首字母署名邮件,SQLite 的网站也曾撤下开发者姓名和照片页面,称可能有人会滥用这些信息。2011 年的诉讼表明,当一位维护者被注意到时会发生什么:Eggert 和 Olson 因一个免费分发的文件而被告上法庭。
r/linux 的讨论中有一条关于认可的小修正。一位评论者上过 Eggert 的操作系统课程,他说称他为"讲师"低估了他,因为他的教学塑造了他们的职业生涯。
## r/linux 社区如何看待这些数据
最常见的反应是愤怒——那些将这些库分发到数十亿台设备的公司,只为自己包装得漂亮或对自身运营至关重要的部分付费。一位评论者认为,销售 Linux 的公司在自己所依赖的软件上很活跃,另一位则回应说,这份榜单上那些乏味的项目恰恰是拿不到任何资金的。一位资深评论者将问题追溯到语言层面:自由软件谈论的是人、权利和责任,而开源谈论的是流程,"责任"那一部分就这样丢失了。
争论最激烈的是关于发行版的话题。一些评论者说,每个严肃的发行版都会 fork 并修补自己的软件包,所以单个上游维护者只是故事的一部分。另一些人回应说,反向移植不等同于上游的韧性,因为发行版仍然依赖原作者来发布版本、做设计决策和提供对代码的深层理解。
xz 案件将讨论分成了两派。一方说后门在发布后几周内就被发现,说明开放式审查在起作用。另一方说它之所以被发现,是因为一位工程师追查了几百毫秒的额外 SSH 登录延迟,类似的攻击可能在别处从未被察觉。第三条评论指出,攻击者成功的方式是耗垮了一位维护者,因此仅看贡献者人数并不能完整衡量安全性。
一位持怀疑态度的评论者认为,这些维护者并没有被压垮,工作量也不足以支撑一个团队。这个说法对成熟稳定的工具最站得住脚,而在唯一的维护者离开的那一天最经不起推敲。有评论者指出 GnuPG 不在榜单上,还有几个人不喜欢原页面上的滚动动画。文末的参考来源中提供了一个纯文本版本的链接。
## 这些数据在多大程度上可信
这次统计是一个有用的信号,但也有其真实存在的局限。
- 提交的作者并不总是维护者,而且有些项目的历史是另一个系统的副本,这可能影响谁被计入贡献。
- 提交数量遗漏了代码审查、缺陷分诊、安全报告和发布工作,所以一份安静的日志可能隐藏了大量工作。
- 成熟软件的变化本身就慢。提交数量低可能意味着已经完成,而非被忽视。
- "无公开拨款"仅涵盖四个指定来源,因此私人支持和雇主投入的工作时间不会体现出来。
- 设备数量是下限。只有当作者能确认某个项目确实存在于某平台上时,该平台才会被计入,Mac、iPad、服务器、汽车和电视都被排除在外。总量基于公开数据:超过 30 亿台活跃 Android 设备、超过 10 亿台 iPhone 和每月 16 亿台 Windows 设备。
作者在文章和 Reddit 帖子中都请求读者提供纠错意见,libxml2 一节已于 2026 年 10 月在 Nick Wellnhofer 的协助下修正。
## 检查你自己的系统依赖了什么
你可以在自己的机器上看到其中的一部分。运行下面的命令,列出 curl 拉入了哪些库。
```
ldd "$(command -v curl)" | grep -E 'libz\.so|libssl|libnghttp2'
```
在 Ubuntu 24.04 上,它会输出 zlib(`libz.so.1`)、nghttp2 和 OpenSSL(`libssl.so.3`)。这就是 23 个项目中的 3 个,全部由一个命令行工具加载。将同样的命令指向你每天使用的其他程序,还会发现更多名字。原文还提供了一个设备选择器,涵盖 Android、iPhone、Mac、Windows 和 Linux,展示哪些项目位于各平台之中。
## 如何支持开源维护者
- 资助
相似文章
开源项目作死的种种方式
文章列举了开源项目消亡的多种方式,包括维护者弃坑、企业忽视、资金断崖和官僚僵局,揭示了开源可持续性中的系统性问题。
在不妥协的情况下资助开源软件
分析了资助开源软件面临的挑战,评估了捐赠、开放核心模式、资助等方法,重点讨论了如何在不妥协的情况下维持像Inko这样的项目。
开源坚守:在公司时间保持OSS活力
本文讨论了通过鼓励员工在上班时间为开源项目做贡献来维持开源软件的重要性,强调了公司支持开源项目的必要性。
开源必须有趣(否则它将消亡)
文章主张,开源必须让维护者感到有趣,以避免倦怠和项目终结。作者结合自己在Homebrew的17年经验以及对KDE和GNOME社区的观察进行了阐述。
开始在维护一个小库后,我终于理解了为什么维护者会沉默
一位开发者分享了自己维护一个小型开源库的经历,描述了问题数量、功能请求和AI生成的拉取请求如何导致倦怠,并敦促用户赞助维护者。