自由及开源软件探源(一)

我想要深入了解自由和开源软件(简称”FOSS”)的原因在于,我们大部分人实际上都在直接或间接地被FOSS影响或者因FOSS而受益,但是身边很少有人真正理解何为FOSS、它的指导思想是什么,以及它的历史成因和发展如何。

举一个具体的例子来讲,现在有一个非常流行的技术流派,称为”LAMP”(Linux、Apache、MySQL和PHP的首字母缩写),它可以称之为FOSS的典型代表。很多创业团队、中小企业甚至越来越多的大型企业正在使用这些技术创造丰富多彩的Web应用。我自己也是LAMP的受益者,所以免不了经常有这样的疑问:为什么会存在LAMP这样的”免费午餐”呢?常识告诉我们,免费的午餐是不存在的;经济学原理告诉我们,如果没有一个类似于”收费版权”这样的商业运作模式存在,又没有外部转移支付式的金主资助(Sponsorship)的话,”免费”是很难长期维系的。要知道,在传统的制造业,要产出产品,你就需要生产资料(通常是流水线、车床等);而在软件行业,要产出产品,你的生产资料(比如上面提到的LAMP)居然是免费的!这一点难道不令人惊讶吗?

上面的”有悖常理”正是激发我好奇心的原因,其中,”免费”(而不是”自由”和”开源”这两个理念)又是让我直接产生疑问的地方,更精确点说,是”这个世界上居然存在高品质和长期的免费现象”。我想知道,究竟是谁在提供这些让大众受益的软件呢?并且进一步地,经济上他们是如何长期维系的呢?这些免费的软件有什么潜在的风险和限制吗?

面对疑问,进入第一轮思考。我发现自己的疑问本身就存在概念上的混淆。我首先关心的其实是为什么会存在大量好用的免费软件,因为存在这样一种心理动机:”咱吃着免费的午餐心有不安,总感觉哪儿不对劲”。恰好,这些”大量好用的免费软件”又都属于FOSS,所以误以为FOSS等同于免费。而深入探究的话,则会发现:免费不等于FOSS、FOSS也不等于免费。

如果一个业余爱好者制作了一款小软件,他很愿意与朋友们分享,于是无偿地把编译好、可以直接安装和运行的软件拷贝给朋友们使用,这显然能称之为免费软件,但这是我想了解的免费现象吗?显然不是。这个业余爱好者的小软件能够免费的原因很简单,那是出于他的个人爱好,或许还有一丝向朋友们显摆的小心思在里面。而我遇到的那些免费软件,往往是那些基础性的、平台型的、有一定规模的、需要长期维护和升级的软件,诸如Linux操作系统、MySQL数据库等等。另外,这个业余爱好者很可能并没有把他制作的小软件的源代码提供给他的朋友们,一来,他认为他的朋友们只是普通的使用者,因此代码对他们没有意义;二来,作为一个技术开发人员,本能地有一种自我保护倾向,会将源码好好地保存在专属于自己的硬盘上。相比而言,FOSS的出发点就是Open Source,这是FOSS的核心基因。

可见,免费不等于FOSS。仔细想来,我自己也用过很多免费但是并不开源的软件,比如WinZip、WinRAR、mIRC等等,他们通常采用”广种薄收”的方式来使得自身可以在经济上得以维持,只要用户基数里的一小部分人register或donate就够了,因此,对于这部分不开源的免费软件,生存之道也很清晰。

另外,FOSS是不是肯定免费呢?非也。以LAMP里的重要成员MySQL为例,如果你开发某种商业应用的时候用到MySQL的话,按照软件许可协议,你是需要向MySQL所属的公司(也就是瑞典的MySQL AB公司,现已被ORACLE公司收购)缴纳软件许可费的。也就是说,当我们天真地以为LAMP就意味着免费的时候,很有可能你已经侵权了(除非你开发的不是商业应用;但是,即便你开发的不是商业应用,也有相应的软件许可协议来约束你的行为,此为后话)。

因此,我最初的问题其实是一个伪命题。单纯地讨论免费不免费没有意义,有意义的问题应该是:这个世界上都有哪些不同类型的软件,各自遵循哪些不同的规则?

软件可以用授权协议(License)来分类。从大的方面来讲,软件可以分为两类,一是私有软件(Proprietary Software),一类是FOSS。私有软件的运行规则很简单,用户付费购买,获得一个可以安装运行的版本,每个私有软件都会有相应的许可证,称为EULA(End-user license agreement)。而FOSS的情况就比较复杂,如果不了解一下它的形成历史、众多派别和众多参与者,简直就无法深入了解它的本质。

重要的FOSS机构陆续有——
1985年,Richard Stallman为了推动自由软件运动(Free Software Movement),成立了Free Software Foundation。
1998年,当时的Netscape成立了Mozilla Organization。
1998年,Eric S. Raymond等人成立了OSI(Open Source Initiative)。
1999年,ASF(Apache Software Foundation)成立。
2003年-2004年,Eclipse Foundation成立。
……

本篇作为本系列博客第一篇,形成的结论是:对于你手头正在使用的任何一个软件,了解其版权授权协议都是极为重要的(这一点还可以衍生到软件领域之外,书、图、音乐等,莫不如是);而要了解这些版权授权协议之间的区别(有时候这种区别可能会比较微妙),第一需要时刻保持知识产权意识;第二需要大量的背景知识作为基础。身处中国社会的大众,与西方语言不通,没有西方人耳濡目染自由软件斗士的宣传呐喊的场景,又浸淫在版权意识较为薄弱的环境中,难免对这些方面缺乏敏感。

没有这种文化敏感度,个体的技术能力再强,最终很可能也无法走在时代的潮头————不理解FOSS背后的思潮,就不能理解Linux、Firefox、Apache、Wordpress、Mangeto、Joomla这些现象,更不能深度参与其中,也就别提创造些什么了。

参考资料——
Wikepedia词条:MySQL,Alternative terms for free software,GNU General Public Licene,GNU Lesser General Public License,End-user license agreement,OSS,Free Software Foundation,copyleft,gpl-violations.org,GNU