互联网所依赖的开源社区免费劳力还能撑多久?(上)

那是在2011年新年前夜,史蒂芬汉森打破了因特网的平静。

这位43岁的英国软件开发者接受了OpenSSL代码的一个小改动,OpenSSL是开源的加密协议,它对于网络安全非常重要。它作为一个开源软件,意味着任何人都可以查看代码,可以为这个项目贡献代码,但请注意,所有人都可以贡献代码并不意味着任何人都会提交代码。

十多年来,汉森与一个由三四个人组成的小团队始终扑在OpenSSL上,到了2011年后半年,他和OpenSSL的核心开发人员一起维护着近50万行代码的代码库,其中绝大部分代码要么是汉森自己写的,要么是他确认(approved)过的。这件事情意义重大、非同小可,因为全球三分之二的网站,邮件服务器,聊天服务器,VPN以及军方、政府、金融机构的网络基础设施都要用到OpenSSL。

那个重要的夜晚,汉森跟往常一样确认(apporved)代码,这段代码是一个叫Robin Seggelmann(塞格尔曼)的德国人提交的,他帮助写下了OpenSSL的“heartbeat”标准,在确认前,汉森和塞格尔曼对接了几个月,期间从未发现过能被攻击者截获OpenSSL加密信息的BUG。

塞格尔曼后来承认里面确实是有BUG的,现在就是大名鼎鼎的Heartleed(心脏滴血),虽然代码错误微不足道,但已经成了史上最危险的软件漏洞之一。像汉森这样经验丰富的工程师改这样的Bug,本就是小菜一碟,但所有人都可能出错。实际上,Heartbleed在OpenSSL里存在了两年半,直到2014年谷歌指出之后,才把Bug修复了。直到现在,这样的Bug依然运行在数百万台设备上。

OpenSSL是数千个常用的开源项目之一,数百万上千万人需要用这些开源项目来浏览网络,看视频,实时翻译,做语音识别等等。因为这些项目都是开源的,所以,这就意味着所有人都可以查看和使用这些代码。

开源之所以能如此兴旺,或者说这么多人热衷于开源其中一个原因就有“Linus定律”,它是说,只要有足够多的人看这些代码的话,Bug就会显露出来。但在Heartbleed事件之后,所有人都在反思一个问题,为什么这么严重的Bug这么长时间都没人发现呢?更恐怖的是,别的项目中是否也有类似严重的Bug呢?

正如OpenSSL基金会的前任CEO史蒂夫·马奎斯(Steve Marquess)在博客中指出的那样,Heartbleed的问题可归咎于开发人员的倦怠和缺钱。马奎斯说,该基金会的预算不到2000美元,每年合同收入不到100万美元。而且,因为有许多开发者都有全职工作和家庭要照顾,时间不够充足。

马奎斯还说,汉森是唯一一个全职OpenSSL开发者,而且只有他懂的技术细节更多一些。这些人做OpenSSL不是为了钱,也不是为了成名,而是为了信仰的事尽一点责任,直到问题出现前,他们一直都是被忽视的。

值得所有人反思的是,全球互联网安全性的大事儿完全靠一个工程师,而且是一个工作过度和不怎么挣钱的程序员。这事儿该指责谁呢?马奎斯认为是哪些广泛使用OpenSSL,并把这一切视为理所当然的商业公司和政府。

马奎斯写道,财富1000强的公司们啊,那些把OpenSSL用在商业产品中的公司,那些不知道怎么用OpenSSL而向我们咨询问题的人们,那些从来没有对OpenSSL做过贡献而把它当做礼物的人们,我在看着你们呢!

2017年,马奎斯和汉森在解决了当时面临的问题后,双双离开了OpenSSL,他们走后,OpenSSL核心开发团队发展到了7人,该项目所需的资金已经至少能用到2021年了。这主要因为有Linux基金会的大力资助,Linux基金会的资金主要来自亚马逊,谷歌,IBM,微软,Facebook和英特尔等主要科技公司的捐款。

从表面上看,开源软件社区的面貌从未如此繁荣,企业和政府正在以20年前完全想不到的速度采用开源软件,新一代程序员也正在贡献开源软件,人们可以随意使用。如果进一步来看的话,问题也开始显现。

开源软件的火热给热门软件的维护者带来了沉重的负担,因为现在要处理汹涌而来的错误报告,功能请求,代码审查和代码提交。与此同时,开源开发人员还要处理不熟悉社区规范的企业用户的需求。这导致了开发人员的倦怠,逐渐对依赖免费劳动力的软件公司心生不满,因为这些软件被产品化后卖给消费者,最后获得了巨额利润。

从这个角度来看,Heartbleed出现的问题并不是个例,而是多年发展中愈演愈烈的问题,问题的原因很明显,但似乎没有一个好的解决方法。

马奎斯一样,许多开发人员认为开源发展的主要问题在于财务问题,于是有很多人认为,如果科技巨头能为他们所依赖的开源项目贡献更多资源,这些问题就可以解决。这样一来,开发人员可以将更多时间放在开源项目上,并激励其他程序员为项目做出贡献。

看似有道理,但事实上,仅仅投入更多资金是不够的,增加的资金在分配方式上有问题,提供资金者在计算回报方面也面临问题。很多时候,资本的涌入有可能破坏社区驱动的生态,这个生态在近半个世纪中维持着开源的发展节奏。

免费啤酒:开放源软件的经济基础

为了深入理解开源社区在经济问题上的困惑,可以回顾一下历史发展的背景,让我们看看80年代早期的麻省理工学院人工智能实验室。

那一个像Marvin Minsky(马文·闵斯基)这样的计算机科学先驱与Richard Stallman(理查德·斯托曼,自由软件活动家)和Guy Steele等新一代计算机专家交锋的时代,这些人从根本上改变了计算机编程世界。 Steele在创建Lisp和Scheme等编程语言方面发挥了重要作用,而Stallman为自由软件运动奠定了基础。

在最近一次采访中,斯托曼讲述了麻省理工学院的人工智能实验室是如何打造一种合作和激进开放的文化的,有趣的是:他们的实验室巨型计算机没有设密码,实验室的大门始终敞开。斯托曼也承认,这种开放文化其实是特定环境的产物:例如,闵斯基老是丢钥匙,实验室里的研究人员之所以共用电脑,是因为只有这一台,尽管如此,实验室的文化还是给斯托曼留下了深刻印象。

1983年,斯托曼发消息说打算创建一个操作系统,让所有人都能免费使用,这个操作系统就是GUN——”Gnus Not Unix“,向当时的主流操作系统Unix发起挑战。

GNU是自由软件运动开启的宣言,斯托曼在1985年的总结说:”我认可的黄金法则是,如果我喜欢一个程序,我必须与同样喜欢它的人来分享。而软件服务商则将付费与非付费用户分裂开来,而且还让用户承诺不跟别人分享,这种破坏用户团结的方式,我是拒绝的“。

早期,斯托曼讨论自由软件时用的词是”free“,这词的意义当时并不明显。自由软件所说的”free“说的是“言论自由,而非免费啤酒”(free as in speech,not as in free beer),换句话说,自由软件定义的是道德要求,即解除掉代码的使用限制,但这并不是说不要钱给你用。自由软件运动的基本原则于1989年完成编纂,当时斯托曼发布了GUN通用公共许可证(GPL),它为自由软件的爆发式发展奠定了基础。

两年后,来自芬兰的脾气特臭的学生林纳斯使用GPL发布了他的免费操作系统内核Linux,自Linux内核发布以后的三十年来,经常与GNU软件一起使用,GUN/Linux已经成了世界上最成功的Web服务器系统,也是世界上最广泛使用的操作系统之一。继Linux之后,许多其他著名的软件也都根据GPL或者GPL标准而发布,包括常用的Apache Web服务器软件和MySQL数据库软件。

当互联网泡沫席卷全球,科技公司估值一落千丈,而斯托曼道德驱动的自由软件世界则是截然不同的一番景象。与硅谷风投们在办公室里创造的数字堡垒不同,自由软件正在发挥作用,斯托曼最终看到道德信念与技术符号相结合,能制作出通过修改来满足个性化需求的优秀软件。

斯托曼(右)展示了“言论自由”和“免费啤酒”之间的区别

“开源”不同于“自由软件”,他们有基于不同价值观的不同哲学。两者的实际定义也不同,但几乎所有的开源程序都是免费的。“自由软件”是指尊重用户自由和社区自由的软件,用户可以自由地运行,复制,分发,研究,更改和改进软件,“自由软件”强调自由,而非价格,Free的意思是“自由”而不是免费,就跟言论自由一样的那个一样,用户拥有对软件的控制权,这就是自由,反之则是专制。

在1997年,一位名叫Eric Raymond(埃里克·斯蒂芬·雷蒙德)的程序员发表了一篇文章——The Cathedral and the Bazaar(大教堂与市集),文章分析了开发自由软件的过程。雷蒙德开创性地提出了“林纳斯定律(Linus’s Las)”,即如果有足够多的人在开发软件程序,那么隐藏在代码中的任何错误都会被快速发小和修补。由于软件是在公开场合下开发的,所以任何人都可以看到自由软件的底层,这意味着代码中潜在的任何错误都更有可能被迅速发现。林纳斯定律的必然结果是,自由软件可以更快地发展,因为任何人都可以为软件提出自己的改进,并将它们发送给项目的核心开发者。

很难具体评估雷蒙德的观点对自由软件运动产生的影响。有这样一个例子,网景浏览器当时是世界上最有价值的软件资产之一,受到雷蒙德的观点影响,它的源代码也公开了。雷蒙德观点引起了一些硅谷名人的注意,同时他们也意识到了自由软件潜在的商业潜力。

唯一的问题是:自由软件运动有道德成分,然而道德对企业发展是不利的。

在1998年,一群高调的自由软件传道者聚集在一起,思考如何让自由软件对行业具有吸引力,于是乎,与会的开发者们开展了一场“营销活动”,以“重新塑造产品品牌,依靠企业必须付费购买的产品重建声誉”。

雷蒙德后来写道,我们看到”自由软件“一词对我们的运动造成了巨大的破坏。雷蒙德在《开源:来自开源革命的声音》一文中写了对于“知识产权”和“共产主义”的看法。在网景浏览器之后人们发现,开源要想成功,得靠务实的故事,对管理者和投资者有利的声音,更高可靠性和更好功能的软件,以及更低的成本。

而后,营销活动取得了巨大成功,如今人们每天都用的技术平台和服务的核心都用到了开源软件。微软前CEO鲍尔默曾将Linux和其他开源项目称为“毒瘤”,如今甚至连微软也开始拥抱开源软件,Google,Facebook,亚马逊,IBM甚至美国政府也是如此。(译:朱朋博,水平有限难免有错,欢迎批评指正,原文《The Internet Was Built on the Free Labor of Open Source Developers. Is That Sustainable?》)