在软件的世界,有很多关键软件是由一个小型、无薪团队(或者更糟糕,一个人)维护和管理的。
而我们互联网恰恰构建在这些关键软件之上。

当这个人对项目感到厌倦时会发生什么?
他会不会做些恶意的事情?就像最近XZ压缩工具的后门事件?
或者说得“恶毒”一些,他万一被公交车撞了怎么办?
一个小小的偶然事件,就会导致现代计算设施的积木轰然倒塌。
这种情况有多可怕?这里举两个普通人可能根本就不知道,但是极其关键的项目。
01
TZ数据库
世界各地的时区和夏令时规则由各自的政府独立管理,他们经常在有限的通知下进行变更,这让处理时区时很麻烦。
幸运的是,我们有一个标准的TimeZone数据库,可以让软件轻松进行时区处理和转换。

许多软件项目依赖TZ数据库:
BSD 及其衍生系统:FreeBSD、OpenBSD、NetBSD、macOS、iOS
Linux
Android
GNU C 库和使用它的系统
各种编程语言:Java、PHP、Perl、Ruby、Python、Javascript、Go、Rust
各种数据库:Oracle、MySQL、PostrgreSQL、MongoDB、SQL Server
我们的世界基本上是由上述软件编写的。
每当时区详细信息发生变化时(每年可能发生几次),数据库就需要更新一下。
如果没有及时更新,不但会引发时间混乱,甚至会扰乱安全功能(因为某些加密工具需要紧密同步的时间)。
对于如此重要的事情,肯定有来自多家公司的高薪团队负责保持更新,对吧?
不,很长一段时间内,只有两个人在维护,即 创始人Arthur David Olson 和 Paul Eggert。

(Paul Eggert)
Olson并不是IT界的专业人士,他只是美国国立卫生研究院的一名员工,Eggert是加州大学洛杉矶分校的教授。
2011年,Arthur David Olson宣布退休,TZ数据库的维护工作才被交给了ICANN,依然由两个人维护:Paul Eggert 和 Tim Parenti 。
02
SQLite
在之前的文章中我就提到过,SQLite世界上使用最广泛的数据库,它的使用数量超过其他所有数据库的总和。
你可能没听说过他,但是它就在你的身边的:
每一台智能手机中(Android 和iOS)
每一台Mac电脑中
每一台Windows 10 电脑中
每一个主要的浏览器中(Chrome, Firefox, Safari)
大部分的机顶盒当中
每个PHP和Python安装目录中
很多流行的桌面应用(微信、QQ、 DropBox、 Skype、 iMessage、WhatsApp、 Adobe Acrobat Reader....)
......
不信的话可以在电脑中搜索一下 “*.db”,看看能发现多少个。
让人惊掉下巴的是,SQLite维护者仅有3个人!

这三个人并不是像Linus那样,掌管这个一个社区,背后有大量的开发人员,他们三个就是SQLite所有的开发人员了!
这个三人团队完全处于“单干”状态,不接受外界任何补丁和代码提交(虽然SQLite本身是开源的)。
Open Source ,但并不是 Open Contribution。
全世界价值万亿美元的系统都在依赖SQLite,依赖这三个人。
03
大公司都依赖志愿者
将这两个项目的负责人加在一起,一共5个人,担负着世界上几乎每台计算机都使用的软件和数据。
这只是冰山一角,还有很多关键项目,例如imagemagick、 xz、FFmpeg,都是由无偿的志愿者组成的小团队在维护。

它们是无数系统的核心,你很可能每天都会使用它们,只是没机会直接接触它们。
FFmpeg 背后的小团队在Twitter上所说,让这些大公司以任何有意义的方式做出贡献可能就像拔牙一样:
xz 的惨痛教训告诉我们,对无偿志愿者的依赖会导致严重问题。
那些价值数万亿美元的公司期望志愿者提供免费且紧急的支持!
微软团队在一个充满志愿者的Bug跟踪系统上发帖,宣称他们的问题是“最高优先级”
我们在礼貌地向微软请求一份长期维护支持合同,他们只是提出一次性支付几千美元。
这是无法接受的!
简而言之:微软希望从 FFmpeg 所做的(免费)工作中受益......但最多只愿意向团队扔一些花生。
而且,即便如此,这种(有点侮辱性的)微薄的支持也只是在微软需要帮助时才会提供。
04
写在最后
1. 巨头会毫不犹豫地向某些组织投入大笔资金(例如 Linux 基金会,该基金会每年会从 Microsoft 等公司获得数亿美元的收入),但是,对于他们直接依赖的,能给他们带来丰厚利润的项目,他们却犹豫不决,不愿意提供资金。
2. Linux桌面和服务器所依赖的那些小项目,有多少获得了Linux基金会(或者资助基金会的巨头)的定期资助?答案是:几乎没有!
3. 即使是备受瞩目的开源项目(例如 KDE 或 GNOME)也很难筹集到足够的资金,来支付两名全职开发人员的工资。
4. 到目前为止,我们全靠运气才避免了灾难。
最近的 XZ 后门是由一位孤独的开发人员发现的,他碰巧注意到半秒的速度变慢,碰巧有时间、碰巧有经验、有兴趣做进一步调查,在造成重大损害之前发现了后门。
我们的好运不会一直持续下去的.....
本文翻译自下面的文章,有改编
https://lunduke.locals.com/post/5477752/if-this-one-guy-got-hit-by-a-bus-the-worlds-software-would-fall-apart

我的新书《码农翻身2》近期正式出版,这本书开启了5折优惠,全彩印刷,用故事给技术加点料,原价118元,现在仅需59元,第一批仅有5000册,赶紧抄底!
“深入浅出而又幽默无比”,这是读者对《码农翻身2》的最高评价。
这本书不会讲How(技术细节,安装配置),而主要讲Why(技术原理),而且是用故事的方式。
你会看到著名的张大胖又会遇到各种各样的挑战,不得不“重新发明”各种知名软件和技术。
编程语言王国之间依然争斗得你死我活,今天Java向Python渗透,明天JavaScript就向Java猛烈进攻。
而C语言春节回家,发现只有自己没有对象,十分悲催。
MySQL和Redis互相看不顺眼,不断向对方使绊子。
......
当你理解了一个又一个计算机的原理和本质之后,慢慢地就会融会贯通,织成一张网,上帝视角就会开启,对于出现的任何新技术,都能迅速理解和掌握。
why 要比 how 重要得多!这是这本书最大的价值所在。

被折叠的 条评论
为什么被折叠?



