来源:信息系统工程   作者:丁晔  联系作者
  5月18日,全球最大的开源项目社区SourceForge.net宣布,该社区内的开源项目已经超过100万项,在此前的100天中,新增开源项目达到了6000项,截至5月17日,SourceForge.net所收录的开源项目达到107万4424项。从个人应用到企业应用,开源软件已经覆盖了整个软件产业的各个方面。
                             
    当我们还沉浸在探讨Linux对IT界会产生什么影响的时候,面对上百万的开源软件,Linux顶多算是冰山一角。如果Linux仅仅对传统的Windows、UNIX平台带来一些威胁的话,那今天的开源软件,已经不再是"小打小闹"。
      面对开源软件的出现,传统商业软件厂商已经开始采取应对措施,Sun开放Solaris 10、IBM频频收购开源软件的商业服务公司,这些举措均是在为新的软件产业变革进行准备。然而无论是那些已经开始未雨绸缪的软件厂商,还是那些准备誓死一战的软件公司,开源软件对他们来说都是一场生与死考验。
  
                           开源鼻祖 能否永续神话
    与Linus Torvalds相比,Richard Stallman在中国的知名度要小得多。正是Richard Stallman所建立的GNU组织,才使得我们今天能够有机会去探讨"自由软件"、"开源软件"。
Richard Stallman无法忍受软件由一种科研、协同、表达思想的工具,变成商业软件公司赚取利润的工具。在Richard Stallman早期接触计算机时,他们所使用的软件并没有像今天这样"私有化"、"商业化"得严重。
    当外界发生改变之后,Richard Stallman决定逆潮流而动,在1983年9月27日公开发起的GNU计划,它的目标是创建一套完全自由的操作系统。GNU的名字也是借助"递推缩进"原则定义出来的:"GNU's,Not UNIX."。此外Richard Stallman还为自由软件进行了定义,并推出了第一个自由软件许可证,名字为GPL。目前将近60%的开源软件,都选择了GPL软件许可证,Linux便是其中的一个。
    Richard Stallman还创造出一个有意思的词汇"copyleft",这个词与版权"copyright"相对应。在GNU网站上,对于"copyleft"是这样进行描述的:将程序变成copyleft授权,我们首先声明它是有版权的;而后我们加入了分发条款,这些条款是法律指导,使得任何人都拥有对这一程序代码或者任何这一程序的衍生品的使用,修改和重新发布的权力,但前提是这些发布条款不能被改变。这样,在法律上,代码和自由就不可分割了。私有软件开发者用版权(copyright)剥夺了用户自由的权力;我们用版权保证用户自由的权力。 这就是我们为 什么把"版权(copyright)"这个名字反转成了"copyleft"。
    "copyleft"是一个含义相对广泛的概念,他并没有忽视人们对知识产权的重视,Richard Stallman是希望人们能够更为自由的享用软件。因为Richard Stallman认为,与传统产业相比,IT产业的知识更新速度更快,一个技术、一个产品的生命周期会非常短暂。如果人们还抱着传统知识产权的思路,那势必会影响整个IT产业的成长。
   与"copyleft"相比,GPL应该算是一个更为具体的对"自由软件"的描述,为保证GNU软件可以自由地"使用、复制、修改和发布",所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共协议证书(GNU General Public License,GPL)。
     对于一个依靠商业公司来推动其前进的软件市场来说,GNU的出现犹如是诞生了一个叛逆。商业公司用冷漠的视角来对其进行旁观。此外由于当时Richard Stallman所希望构建的下一代类UNIX尚未成型,因此GNU也没有引发太多人的关注。但是当Linux的出现,乃至今天Linux的大行其道,使得今天所有的IT厂商,再也无法忽视GNU的力量。
                             “自由”与“开源” 激进向中庸转变
     Richard Stallman是一个生活在理想之中的人,在GNU网站首页最先看到的,并非是对自由软件的讲述或是GNU组织的描述,而是“Free as Freedom”,中文被翻译成“自由自在”。“自由软件”在今天看来是对私有软件或是商业软件,最为极端的一种反击手段。
    GNU认为具有“中心自由”的软件就是自由软件,他们对“自由”的描述是:“自由0:为任何目的运行该程序的自由。自由1:研究该程序是如何工作的并为您的需要而改编它的自由;为此目的,可获取其源代码是先决条件。自由2:再发布复制品以便你能帮助你的邻居(伙伴)的自由。自由3:改良该程序,并向公众再发布你的改良本,以使全社会受益的自由。为此目的,可获取其源代码是先决条件。”
    也许商业社会对于“自由”本身就有一种发自内心的恐慌。因此商业软件公司对于GNU大多采取敌意的态度。在1998年,这种状况由于“开放源代码首创行动组织”(Open  Source  Initiative  Association,简称OSIA)的出现得以改变。
     OSIA是一个非盈利的组织,他是由Bruce  Perens、Eric  S. Raymond发起创立的。OSIA的出现,是由于“自由软件”在推广中往往受到人们的误解。尤其是那些希望借助自己软件获取商业利益的个人、公司,长久以来认为“自由软件”与“免费软件”之间的区别难以分清。在英文中“free”一词,既可以被用做“自由”,也可以被理解成为“免费”。此外GNU在推出的GPL协议中,由于强调使用者对源程序进行修改后,同样也要将修改部分进行开放,使得一些软件开发者降低了使用、二次研发“自由软件”的积极性。
    而“开放源代码首创行动”(Open  Source  Initiative,简称OSI)的出现,首要一点就是希望继续推动开放源代码软件,让其有更广阔的生存空间。因此它仅仅对“开源软件”进行了描述,对于开源软件的使用者、商业推广、二次开发的限制明显降低了要求。
    OSI对于开源领域的贡献,就在于他将自己定位于一个中立的、协调的角色。为了能够让所有开源软件得到业界的认可,他通过注册商标的形式,对各种开源软件进行认证。OSI对开源软件的认证前提来自两个层面,一方面是其自身对于开源软件的定义,另一方面是提供开源软件一方对于该软件许可证的描述。
     OSI对于开源软件的描述非常详细,大致可以分成四个层面,首先是软件具有无条件的发布自由,另外对于源代码开放的具体说明,例如要求软件的发布形式必须为开放源代码的形式,此外关于演绎作品,即开放源代码软件许可证必须允许源代码可以被修改和允许根据源代码产生有版权法意义上的演绎作品。而这一点为日后开源软件的商业用途提供了契机。最后是与软件使用、开发是否受到歧视相关的要求,例如不得对许可对象有歧视、不得对软件被使用的领域有歧视、不得要求本开放源代码许可证生效的条件是在遵从其他软件许可证的前提下。
    与GNU相比,OSI对“开源软件”没有采用极端的做法,再加上他采取认证的方式,统一了自GNU出现后,纷乱的"自由软件"领域,因此无论是在民间还是在商业软件领域,OSI均得到了人们的认可。目前包括Sun、Sybase、Apple、Mozilla以及IBM,均将自己的某些软件通过OSI认证为开源软件。
   
                        “开源”盛世背后的吵闹 
       随着OSI组织的强大,再加上各类不同背景的开源软件出现,导致了新的一轮争论。由于各个开源软件所遵守的“许可证”不同,人们发现一些同为“开源软件”的产品,在应用和开发上却大相径庭。
    由于OSI对开源软件的定义,并没有强调开源软件后续开发一定要将源代码开放,同时也没有强调开源软件的使用是否可以被商业公司再次使用。因此今天人们所使用的一些开源软件,其背后已经不再是一些民间组织,而更多的是商业软件公司,例如Sun公司的Open Solaris、Apple公司Darwin等等。
     就开源软件许可证的争论恐怕要持续几年。无论是GNU推出的GPL,还是Mozilla推出的MPL,以及Sun公司发布的CDDL,均是出于各自对“开源软件”的理解,所采取的"防范"手段。他们或多或少都希望,未来开源软件能够按照他们的理解去发展。
      争论的激烈,可以看作“开源软件”愈发受人重视的另一个表象。包括分析公司在内,他们对未来开源软件的发展也保持着乐观的态度。在2004年7月 AMR Research调查显示,当时已经有43%的企业在核心业务上面使用“开源软件”的数据库产品,而在未来24个月内打算在核心业务中使用“开源软件”数据库产品的企业,则占到37%。目前在开源数据库产品中,MySQL和PostGres已经形成双雄鼎力的趋势。
       在2005年Forrester Reasearch公司的调查中显示,60%的被访问企业表示在2005年将安装,或是部署完毕开源软件。值得注意的是,调研公司的视角已经不再仅仅局限在Linux之上,而是投放到整个“开源软件”之中。“开源软件”在未来的软件产业之中,对于用户来说,决不是什么“另一种选择”的概念,而很有可能是用户的“首要选择”。