dbaplus社群

如果这个人出了意外,互联网就崩溃了……

而我们互联网恰恰构建在这些关键软件之上。

Image

当这个人对项目感到厌倦时会发生什么? 

他会不会做些恶意的事情?就像最近XZ压缩工具的后门事件?

或者说得“恶毒”一些,他万一被公交车撞了怎么办?

一个小小的偶然事件,就会导致现代计算设施的积木轰然倒塌。

这种情况有多可怕?这里举两个普通人可能根本就不知道,但是极其关键的项目。

一、TZ数据库

世界各地的时区和夏令时规则由各自的政府独立管理,他们经常在有限的通知下进行变更,这让处理时区时很麻烦。

幸运的是,我们有一个标准的TimeZone数据库,可以让软件轻松进行时区处理和转换。

Image

许多软件项目依赖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。

Image

(Paul Eggert)

Olson并不是IT界的专业人士,他只是美国国立卫生研究院的一名员工,Eggert是加州大学洛杉矶分校的教授。

2011年,Arthur David Olson宣布退休,TZ数据库的维护工作才被交给了ICANN,依然由两个人维护:Paul Eggert 和 Tim Parenti 。

二、SQLite

在之前的文章中我就提到过,SQLite 是世界上使用最广泛的数据库,它的使用数量超过其他所有数据库的总和。

你可能没听说过他,但是它就在你的身边的:

  • 每一台智能手机中(Android 和iOS)

  • 每一台Mac电脑中

  • 每一台Windows 10 电脑中

  • 每一个主要的浏览器中(Chrome, Firefox, Safari)

  • 大部分的机顶盒当中

  • 每个PHP和Python安装目录中

  • 很多流行的桌面应用(微信、QQ、 DropBox、 Skype、 iMessage、WhatsApp、 Adobe Acrobat Reader....)

......

不信的话可以在电脑中搜索一下 “*.db”,看看能发现多少个。

让人惊掉下巴的是,SQLite维护者仅有3个人!

Image

这三个人并不是像Linus那样,掌管这个一个社区,背后有大量的开发人员,他们三个就是SQLite所有的开发人员了!

这个三人团队完全处于“单干”状态,不接受外界任何补丁和代码提交(虽然SQLite本身是开源的)。

Open Source ,但并不是 Open Contribution。

全世界价值万亿美元的系统都在依赖SQLite,依赖这三个人。

三、大公司都依赖志愿者

将这两个项目的负责人加在一起,一共5个人,担负着世界上几乎每台计算机都使用的软件和数据。

这只是冰山一角,还有很多关键项目,例如imagemagick、 xz、FFmpeg,都是由无偿的志愿者组成的小团队在维护。

Image

它们是无数系统的核心,你很可能每天都会使用它们,只是没机会直接接触它们。

FFmpeg 背后的小团队在Twitter上所说,让这些大公司以任何有意义的方式做出贡献可能就像拔牙一样:

xz 的惨痛教训告诉我们,对无偿志愿者的依赖会导致严重问题。

那些价值数万亿美元的公司期望志愿者提供免费且紧急的支持!

微软团队在一个充满志愿者的Bug跟踪系统上发帖,宣称他们的问题是“最高优先级”。

我们在礼貌地向微软请求一份长期维护支持合同,他们只是提出一次性支付几千美元。 

这是无法接受的!

简而言之:微软希望从 FFmpeg 所做的(免费)工作中受益......但最多只愿意向团队扔一些花生。

而且,即便如此,这种(有点侮辱性的)微薄的支持也只是在微软需要帮助时才会提供。

写在最后

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