Linus:免费不重要,源代码公开才重要
在过去的30年里,Linus一直领导着Linux内核的开发,并于2005年创建了Git。在Linux30周年之际,Linus接受了TagConsulting创始人兼首席执行官对JeremyAndrews(以下简称Jeremy)的采访,深入谈论了30年来管理这样一个大型开源项目的经验和思考。
Linus:免费不重要,源代码公开才重要
1.Linux核心之旅
杰米:今天,Linux将迎来它的30周年纪念日。在这段旅程中,你什么时候意识到你做的Linux不仅仅是一个爱好?
Linus:我很早就意识到了这一点。1991年底(1992年初),Linux比我想象的要大很多。当时可能只有几百个用户(甚至不能算是用户,人们只是在不断修复)。虽然当时还没有考虑发扬Linux,但就个人而言,最大的转折点是,当我意识到有人在用它,对它感兴趣的时候,它就开始有了自己的生命。人们开始发送补丁,我逐渐发现这个系统能做的远远超出预期。
据我回忆,X11可能是1992年4月移植到Linux上的,这可以算是另一个里程碑:GUI和一系列全新的功能出现。在这一点上,我一开始并没有什么期望很大的计划。这仅仅是一个个人项目,也不是出于什么去创造一个新的操作系统,只是在我对新PC硬件的深入研究中逐渐发展和完善的。
所以,第一版更像是在说:"我做了一个作品。希望你们能对此感兴趣",但是在那个时候,这个操作系统还不够严谨和可用。这更像是为了证明一个概念的可行性,只需要几个月就完成的个人项目。
对我来说,从个人项目到别人使用,发送反馈和偶尔的补丁都是很大的改变。
举例来说,一个最基本的例子:在原始版本中,可以以源代码的形式发布,但是没有利润。对于那时还是学生的我来说,商业UNIX太贵了。对于我来说,源代码可用是很重要的,只有这样人们才能修改源代码,我希望它能够向像我这样无法负担其他选择的人开放。
1991年年底(或者1992年初),我将GPLv2许可证改为GPLv2,因为有人希望将其作为一张软盘分发给本地UNIX用户组,并希望至少收回软件成本和时间成本,这一要求实际上是完全合理的。"免费"并不是最重要的,"开放源代码"。
结果是:人们不仅仅在UNIX用户组会议上发布,而且在短短几个月里,SLS(SoftlandingLinuxSystem)和Slackware等早期软件发行版就出现了。
在这些基本改变之外,其他一切都是“渐进的”。一些渐进式的改变当然是相当大的(IBM的加入、OracleDB的移植、RedHat的首次公开募股、Android在手机上的应用开发等等),但是对我来说,这些改变并不像最初发现使用Linux那样具有革命性。
Jeremy:你有没有曾经因为别人/公司从你创建的系统中赚了多少钱而后悔?
Linus:从来不后悔。第一,我过得很好。尽管不算特别富有,但作为一名高薪的软件工程师,我可以根据自己的节奏做自己喜欢的事情,保持一种相对舒服的状态。
同时,我100%地相信许可是Linux(Git)成功的一个重要部分。对于每个人来说,我一直坚信,每个人都有平等的权利,而且没有人在许可方面有特权,这对大家都是好事。
如今,有很多“双重许可”项目:原所有者持有商业许可(支付许可费用即可将其用于自己的专利产品),但另一方面,该项目也可以通过GPL(通用公共许可)开源。
在这样的环境中,要建立一个社区很难,因为开源的一方总是知道他们的“二等公民”身份。此外,为了让享有特权的一方始终保留他们的特别权利,必须要有大量的许可文件,这会给项目带来许多额外的阻力。
在另一方面,我看到很多由BSD(或MIT等)授权的开源项目,当其规模逐渐扩大到具有商业重要性时,它就会四分五裂,而相关公司也必然将自己的部分转变为专有部分。
我认为GPLv2可以达到“人人都按相同规则工作”和“要求人们回馈社会”的完美平衡,每个人都受到同样的规则约束,而且公平公正。
类似地,你的投入会相应地得到回报。您可以充当项目的“旁观者”,但同时也失去了对项目的控制;或者仅仅将Linux当作一个基本的操作系统;但是,如果您有特别的需求,唯一能够产生实际影响的方法就是参与项目。
如果是这样的话,包括我在内的所有人都要诚实。每个人都可以选择一个项目,走自己的道路,然后接管自己的Linux版本维护。我的独特之处只在于人们认为我可以做好工作,而这是理所当然的事。
有些人对GPLv2持怀疑态度,“任何人都可以维护自己的版本”,但是我认为这是一个优势。就是这样让Linux摆脱了最后的分裂:每个人都可以完成自己的项目分支。实际上,这也是“Git”的核心设计原则之一——存储库的每一个克隆都是一个很小的分支,开发者(或者公司)要真正完成项目开发,就必须从它们中分离出来。
因此分支本身并不是问题,只要你能将好的部分组合在一起,那就是GPLv2的目的。要保证每个人都有进行分叉和实现个人项目的权利,但同时,还要保证当分叉成功时,大家也有权再把它重新融合回来。
另外一个问题是,每个人都希望有能够支持项目生产的工具,同时,心态必须要强大。分叉融合的障碍,不仅仅是许可,而是“蓝鲸”的问题。假如两个分歧从根本上就完全相反,那么很难把它们结合在一起——这不是因为许可或者技术上的原因,而是因为分歧过于尖锐。再一次,我认为Linux很好地避免了这种情况,主要是因为我们一直认为分叉是一件很正常和自然的事情,当它证明它自己成功时,它就自然会重新合并。
尽管这个回答可能会有点跑题,但我认为它非常重要——我从来没有为选择许可而后悔,因为我真诚地认为GPLv2是Linux能够成功的重要原因。
山东济南汉码未来觉得:钱并不是最好的激励方法,因为它不能把人们联系起来。而我想,真正的激励因素是:人们参与一个共同的项目,并且真正感到自己可以成为这个项目的全面合作伙伴。