DONEWS
这两年,开源成为了IT界的热门词。去年,Sun公司宣布其重量级的产品——Solaris开源,更是将全球的开源活动推向了高潮。很多人或许会认为Sun的开源不过是应景之举,但追溯向前,Sun最早的开源和其创始人之一的Bill joy 有着密切的关系,他在1980年的时候就创造了BSD版本的Unix,并把这个软件发给了社区的其他人。
Bill joy当初的无心之举,多少让人们把他和Sun开源的“鼻祖”联系了起来。而且,正因为他对开源的坚持,1982年正式成立的Sun公司至今已有24年的开源历史。像NSF、TCLTK、Java、OpenSolaris、OpenSPARC┅┅Sun开源的领域从最初的软件延伸到了芯片领域。
特别是,Sun还是业界为数不多的设立开源官职位的公司。Simon Phipps担任Sun公司软件开源首席执行官有一年多的时间了,他的主要任务就是规划和推行Sun的开源项目,并加强和开源社区的联系和引导。
时代变了,软件的模式也变了
为什么要开源?有着巨大的投入和诱人的商业利益,却为何拱手放弃呢?这得从IT的历史发展谈起。
首先是人们购买软件的模式发生了巨大的变化。具体来说是经历了三个不同的阶段。在1980年以前,软件和硬件是捆绑在一起销售,软件是包括在硬件里面。人们购买了硬件,意味着就拥有了相应的软件,因而那时根本没有开源的概念。
从上世纪80年代开始,人们开始硬件和软件分开购买。当时,人们购买软件仅仅获得的是软件的使用权。在这种情况下,人们开始希望能得到软件的源代码,从而进行深度的开发,于是软件开源就应时而生了。
进入21世纪,软件的一种全新销售模式出现了,就是人们在购买硬件时可以选择多种开源软件,但用户如果没有使用就不需要付钱。只有当用户真正使用并需要获得支持时,用户才支付相应的费用。
目前,这种模式逐渐成为趋势。软件业也由此发生了变化,技术和服务现在已经成为盈利的主要途径。
其次,开源的实质是为了创造一个开放的市场。上世纪90年代,Intel和Microsoft联手出击,大有垄断市场的趋势,“Wintel”也成为IT不容争辩的“标准”。
在这种情况下,开源成为了打破该局面的最有效的方式。Sun在1995年推出了划时代的Java平台,并随即宣布了对外界开放源代码。正因为当初的开源,才造就了Java成为了目前惟一能与.net相抗衡的技术阵营。
OpenSolaris:让Sun声名鹤起
尽管推行开源有了多年的历史,但Sun在去年宣布将其旗舰产品——Solaris开源,一下子让人们看到了一个完全开源、言行一致的Sun。
“Solaris是Sun的第一个软件成功转入到服务收费模式的,今后Sun所有软件都会转到这个模式。现在,Solaris有了一个很成功的开始:第一,用户要求我们做培训收入在上升;第二,我们看到用在其他硬件平台上的下载,或者许可证是越来越多了。”Simon说。
仅去年一年的时间里,就有14000多人加入了OpenSolaris开源社区,而且OpenSolaris还有了五个新的独立的发行版本。更有甚者,很多人还把Solaris放到了FreeBSD、
苹果的OS/10上面。所有这些积极的迹象表明,OpenSolaris是真正的开源,而且发展非常健康。
与Linux所采用的GPL协议不同,Solaris采用了CDDL协议。与GPL相比,CDDL 协议有三大优势:第一,在应用Solaris时,不要求ISV将自己的研发或者劳动成果进行回馈,他们可以选择不公开自己的源代码,保留自己的知识产权,从而为软件公司预留了发展空间。第二,Sun允许ISV免费应用所有与Solaris相关的专利,没有潜在的法律风险。第三,其他很多协议都首先受到美国法律的限制,而CDDL 协议则允许用户按照本地的法律来解决。例如,中国的ISV在应用Solaris时产生了法律纠纷,就可以在中国的法庭解决,并且是适用中国的法律。
对于Solaris 10,Sun计划对1000万行代码开源,而对涉及第三方驱动程序等在内的部分还是保持原状。Simon解释说,这主要是关系到第三方的知识产权。
接下来,OpenSolaris会把开源的大门打得更开。Simon透露,Sun不久就会把软件修改的版本控制功能放到社区里。ISV等原先修改软件后要通过Sun才能修改版本,下一步就可以自己直接控制了。
“以前并没有把版本控制功能开放给公众,因为在Solaris里版本控制用了teamware,这并不是对大众开放的。开放版本控制会对整个社区发展有比较大的影响。”Simon说。这个消息无疑将刺激更多的ISV或个人在Solaris进行二次开发。
Java开源:站在分水岭前
Java曾经一度是Sun开源的象征,后来Sun很多的开源项目基本套用了Java成功的要素和理念。但时过境迁,现在,Java的不完全开源反而成为业内和用户批评Sun最多的地方。
1995年,Sun发布了Java平台。令人不可思议的是,Sun居然把全部代码都提供给了用户,人们都有可能在上面做一些修改或衍生的工作,这在当时是很难想像的。因为当时恰逢Windows 95发布,微软一直把Windows的源代码进行保护,这在业界产生了很大的震动。
当时,无论是IBM这样的大企业,还是普通的学生,都可能拿到Java的源代码,可以做进一步的工作。Java飞快地传播开来,并由此产生了很多的应用。Java的成功,很大程度上帮助了开源概念的发生和壮大,因为人们看到把源代码公布给公众,不但没有把该软件技术破坏掉,反而让它壮大得非常快,发展得非常好。
可是,由于Java的许可证不是一个真正的开源许可证,因此Java的“开源”并不是一个真正的开源概念。
面对外界的质疑,面对OpenSolaris的成功,Java站到一个分水岭前。是进一步开源,还是维持现状?Simon提前公布了Java的开源计划:Sun计划在今年年底到明年年初的时候,用开源的许可证来公布Java的源代码。Sun一方面会开源源代码,另一方面Sun会组织一个Java的开源社区,推动Java的进一步发展。
Simon强调,Java之所以得到这么广泛的传播,主要因为它的兼容性非常好,Sun会一直坚持确保这个兼容性。至于Java会采取什么样的许可证,Simon表示会通过社区广泛征求用户的意见,然后再形成规则。
开源社区:一潭活水源
有道是“问渠哪得清如许,惟有源头活水来。”开源能否取得成功,一个关键因素是有一个富有活力的社区。
对于开源,很多人有不同的理解。有的人认为开源就是一个免费得到源代码的概念,有的人认为开源就是一个社区的概念,还有的人认为开源就是一个许可证概念。Simon认为,开源是一个完整的概念,一个社区围绕着一个代码的基础来做工作,在这里面要有一个共同的开源的协议,同时还要有一个社区的组织和运作的规则,这些东西都是缺一不可的。
OpenOffice社区就是一个比较成功的例子,该社区目前是全球第二大的开源社区。OpenOffice社区成立于2000年,2002年开始该社区就着手制定开放的文件标准的格式。这是基于全世界很多政府的需求,他们希望文件格式并不是封闭的标准,即使文件被保存若干年以后,也要能够保证文件无论用什么格式都可以打开。OpenOffice在2002年做出这个文件标准,并把该标准捐献给了国际标准组织,有力地推动了全球文件存储的发展。