文章 » 科技

开源运动的“中国特色”

互联网周刊, linux999.org
"开源软件的定义中除了要公开源代码外,开源软件与商业软件最大的区别在于免费自由重复散布 和 允许修改及衍生软件。在国内由于盗版的盛行,微软的程序占主流,开源软件的使用和开发并不普及。"

在中国,开源运动更像是一门生意而不是一项事业。中国一直没有足够成熟的开源社区,但却有大把的开源软件公司。开源运动在成为一种值得为之奋斗的理想之前,已经先成为了一种“利益为先”的商业活动,这是开源运动的“中国特色”。

不久前,MySQL创始人兼副总裁David Axmark到访中国,在一次记者招待会上,面对 “如何评价中国开源领域发展现状”的问题,这位世界上最著名的开源数据库创始人停顿了许久,说:“我觉得在中国,大家对于开源事业还不太了解。” 其坦率的回答,让现场陷入一片沉默。

David Axmark的评价事出有因。在之前的中外交流会上,国内某位开源专家发表了一篇关于“linux操作系统如何实现与windows操作系统的兼容”论文。这正是国内开源界目前努力的方向,但令在场的国外专家们迷惑不解。为什么他们的中国同行对开源运动学术研究方向的选择,竟然是如何与开源的对立面—一个封闭的专有系统实现兼容?

在国外专家看来,开源运动的意义就在于开放源代码、信息共享和自由使用,如果跟随windows或者任何一种封闭式专有系统的脚步,只会让开源运动失去原有的意义,永远不能掌控自己的发展方向和技术路线。而国内专家们则认为,就目前情况看,人们的使用习惯已经固定,假如不能实现与 windows的很好兼容,linux等开源操作系统根本不会被大众所接受和使用。

其实,国内外开源领域对于linux是否要与windows实现兼容的分歧由来已久。国外的开源社区往往十分发达,对整个开源领域有着举足轻重的影响力,许多新的技术、产品甚至公司都是在开源社区里孕育发展出来的。这些产品、技术、公司的创始人,即使在发展壮大成为商业性组织之后,也一般都坚守着当初在开源社区的“自由、共享” 理念。

在国外,大多数开源软件的使用和购买者们,也都有着明确的目的性—就是对开源运动有天然的好感,而不是出于什么系统成本、安全、保密等考虑。所以,他们并不在意购买到的产品是否能与其他操作系统兼容,或者在界面上、操作上符合过去的使用习惯。对于通过与windows等系统的兼容,以换取短期商业利益的想法,国际上的开源运动组织或厂商即使不是嗤之以鼻,也不至于致力于此,更别提那些开源社区里的技术人员。

而在国内,情况却大不相同。首先,中国没有大型的开源社区,也没有形成有影响力的开源社区力量,大多数的开源活动或者研究都是由开源软件企业所推动的。这就注定了其浓重的商业色彩。

其次,国内开源软件企业的主要目标是政府用户。政府采购开源软件的目的不外乎软件正版化和支持民族软件产业两点,但是大多数国内正版软件在购买之后即被闲置,公务员们依旧使用原来盗版的windows和office进行日常办公,因为开源软件“不符合使用习惯”。于是国内开源软件厂商视“与微软兼容”为主要方向。

作为一门生意,国内厂商的做法无可厚非。但当建立在追求“自由、分享”等伟大理念基础上的开源运动染上了铜臭味,开源就和其他的生意没什么差别了。

附录:【开源(又名开放性原始码)软件的定义】转载自Linux999.org

自由软件,这个大家都耳熟能详了,英文Free Software,是Richard Stallman创造的一个概念。RMS还专门建立了自由软件基金会FSF(Free Software Foundation)来推广自由软件的开发和应用。自由软件的精华和代表就是著名的GNU 通用公共许可证(GPL) (The GNU General Public License)。由于此协议对软件的限制过于严格,RMS又发布了GNU 宽通用公共许可证 (LGPL) (The GNU Lesser General Public License),lesser也就是限制要少一点意思。事实上,很多软件都同时采用了这两种许可,也就是双许可证。

尽管RMS为推广自由软件作了不懈的努力,并在学术界和电脑爱好者中抛起了巨大的反响,但是在工业界一直没有什么突破。原因之一就是由于英文单词 "free"的多重含义(免费/自由)。这个问题的确给自由软件的推广带来了一定的困难,不少公司或个人都对“免费”这个字眼产生疑虑,毕竟天下没有免费的午餐,软件不要钱大家岂不是要饿肚皮?RMS几乎每次演讲都要对此作一番解释,甚至在GPL许可证的文章开头都作了一番澄清──When we speak of free software, we are referring to freedom, not price。另外,GNU操作系统的核心hurd迟迟没有发布,自由软件也未能进入大众的视线。尽管大家在这种状态下被困扰了上十年时间,但在hacker的小圈子里,这并不是什么大不了的事,名称歧义的问题就一直没有得到解决,甚至没有得到足够的重视,RMS也只能一遍又一遍的向世人解释。

转机出现在上世纪九十年代,Linux的崛起,使自由软件真正有了在社会生活中发挥作用的平台,让自由软件进入工业界也不再是纸上谈兵。这时自由软件的大佬们就不得不正式面对这个问题了。到了1998年,受到《大教堂与集市》一书的启发,网景公司公开了Netscape的源代码(采用的是NPL许可证 Netscape Public License),以应付微软IE浏览器的免费攻势。尽管这不是FSF提倡的GPL或LGPL许可证,但这却是工业界第一次涉足自由软件的领域。ESR和一些硅谷的Linux同好聚在一起讨论这个问题,Chris Peterson在会议中提出了开放性源代码(open source)这个词,得到了包括Linus Torvalds之内的所有人的一致赞同。这不仅仅是Linux的事,Keith Bostic认为全世界的BSD用户也能接受这个词。好了,一个新的概念诞生了,用ESR的原文来描述是再恰当不过了“嘿,各位,现在是紧要关头,网景公司的宣布改变了一切,我们已从二十年来一直被围困的小角落突围而出,现在是一盘全新的棋 ── 场面更大,趣味更浓 ── 我想我们必能获胜。” 另外,Bruce Perens(当时的Debian GNU/Linux的leader)自愿登记“开放性原始码(open source)”作为商标,并通过Software in the Public Interest拥有这个商标。

创造出这么一个名词之后,咱们就得给它一个定义。幸好,Debian当时已经在着手这方面的工作──起草一个Debian自由软件准则(Debian Free Software Guidelines,简称DFSG)。接下来几个月时间里,Bruce Perens在邮件列表上与Debian开发及维护人员展开了热烈的讨论,最终完成了一个能体现开源精神的DFSG版本,并在其基础上去掉与Debian 相关的一些特定内容后形成了第一版的开放性原代码定义(Open Source Definition 简称OSD)。

定义如下 (这是我在网上找到的一个比较早的翻译版本,可能跟最新的英文 opensource.org/docs/definition.php 有些出入)

1. 免费自由重复散布

当一套散布的软件由若干不同来源的程式组成时,许可证不得限制任何一方销售或让予作为其组成部分之一的开放性原始码程式。该许可证不得要求从是项销售中索取使用费或其他费用。

2. 原程式码

软件应附有原程式码,该软件除以编辑後的形式散布外,还应允许以原程式码的形式散布。如一项产品中的某些部分未附有原程式码,则应有通行的途径,通过网际网路免费下传。原程式码中必须具备编程员可用来修改程式的原始码。不得使原程式码变得晦涩难懂,亦不得具有使用预处理器或转译器处理後所得的中间形式。

3. 衍生软件

许可证应允许修改软件和衍生软件,并允许修改後的软件和衍生出的软件以原软件的同一条件散布。

4. 原程式码的完整性

许可证可限制原程式码以修改後的形式散布,除非为修改软件的目的在最後编辑时原始码连同修改程式一起散布。许可证必须明确规定允许散布根据修改後的原程式码编制的软件。许可证可要求衍生软件使用不同的名称或版本号码,有别与原始软件。

5. 不得歧视任何人或团体

许可证不得歧视任何人或多人组成的团体。

6. 不得歧视任何专业工作领域

许可证不得歧视任何人将程式用于任何具体专业领域。例如,许可证不得限制程式用于商业,亦不得限制用于遗传基因的研究。

7. 许可证的散布

与程式有关的任何权利必须适用于使用该程式的任何使用者,这些使用者无须为此种使用再取得其他许可证。

8. 许可证不得具体针对一项软件产品

与程式有关的任何权利不得由该程式是否为某一特定软件的一部分来决定。如果从一套软件中取用一组程式,并根据该程式的规定使用或散布这组程式,则得到这组程式的所有各方的权利与得到原软件的使用者的权利相同。


9. 许可证的规定不得影响其他软件

许可证不得对其他与此软件一起散布的软件作出任何限制的规定。例如,许可证不得坚持要求所有根据同一介质散布的其他软件都必须为开放性原始码软件。

10. 许可证范例

GNU GPL,BSD,X Consortium 和 Artistic 许可证均可视为符合开放性原始码定义的许可证范例。

有关开放性原始码的定义的说明

制定开放性原始码的定义的目的是为了要推动基于开放性原始码发展的软件 -- 务使根据开放性原始码许可证散布的软件能获得其他软件同好的评审,使软件不断得到发展和改良,达到非开放性软件无法达到的可靠程度和力量。

为使这项发展持续不辍,必须抵制为了短期利益停止软件开发。因此,软件许可证中必须作出不得使人完全无法取用软件原程式码的规定,而只让极少数的人能看到内容或对其作出修改。

1. 免费自由重复散布

在许可证中作出免费自由重复散布的规定,就排除了为取得销售软件而得到的短期利益和少量金钱而愿意放弃许多长久效益的诱惑。如果不作出这项规定,就可能有许多压力迫使合作伙伴背弃承诺。

2. 原程式码

规定原程式码必须不晦涩难懂,因为软件不可能不经过修改而有所改进。为了便于软件的改进,必须作出程式必须便于修改的规定。

3. 衍生软件

单能读到原程式码不足以支持个别同好对软件的审评和快速地选取改进的软件。为了加快改进软件的速度,必须要能试验和重复散布各项修改。

4. 原程式码的完整性

鼓励对软件作出各种改进是一件好事,但使用者有权知道谁应对其使用的软件负责。软件的原作者和维护人员相互都有权知道要他们支持的软件为何,以维护他们的信誉。

因此,开放性原始码软件的使用许可证必须保证软件中已附有原始码,但可以规定该原始码需以最初的原始编码和其後的修改程序散布。通过这种方式,使用者可取得对软件的各种"非正式"的更改,并同时能分辨出有异于最初原始程式之处。

5. 不得歧视任何人或团体

为了从这项过程中取得最大效益,社会各阶层人士和团体均有同等资格对开放性原始码软件作出贡献。因此,禁止任何开放性原始码软件的许可证将任何人排除在这项进程之外。

6. 不得歧视任何专业工作领域

本条的主要用意是禁止许可证中有任何使开放性原始码无法在商业上使用的规定。我们要商界人士参与我们的工作,而不让他们感到排斥在外。

7. 许可证的散布

本条的目的在于禁止通过非直接途径,例如要求签署"不公开"协议等办法,使软件无法公开。

8. 许可证不得具体针对一项软件产品

本条预先对其他各种许可证方面的陷阱作出规定。

9. 许可证的规定不得影响其他软件

要使用或散布开放性原始码软件的人有权对其自己的软件作出选择。

相信大家会觉得这些咬文嚼字的东西很烦,我简单扼要的说一下。在定义中除了要公开源代码外,开源软件与其它软件最大的区别在于免费自由重复散布 和 允许修改及衍生软件。

事实上,有两个最好的反面例子可以说明问题

一、微软向各国政府公开windows操作系统源代码

MS允许各国派员在可控的条件下阅读源代码,相信不用我解释大家也知道这是个骗人的把戏。

二、Sun Microsystem的Java

Java的源代码的确是公开的,各位可以从sun公司网站上得到,但是java采用的的许可证并不符合自由软件定义,这也就是几大Linux发布版都没有包含sun jre或j2sdk的原因。

Debian Java FAQ中是这样解释的 debian.org/doc/manuals/d...icense-concerns

Sun has moved to a new license the Sun Community License, like the GPL it is a viral license, but making all it touches subject to Sun licensing fee. The SCSL even goes so far as to define any implementation of a Sun specification as a "Modified Work". Basically, this means that if you implement any part of the new 1.2 API or Jini API, even from scratch, Sun will "own" your implementation and you will have to pay them for the right to use it.

译文:Sun已经改为采用名为Sun Community License的新许可证,类似于GPL,这也是一个过滤性的许可证,但是其涉及的所有内容都受Sun许可费的控制。SCSL甚至把范围扩大到将任何对 Sun规则的实现定义为“修改成果”。基本上,这也就是说,如果你实现了任何新(java)1.2版的API或者Jini API,哪怕完全是自己从零实现的,Sun都将“拥有”你的实现,而且你必须向Sun付费来获得使用权。

---- Java 2 SDK License第13条对modification的定义

13. "Modification(s)" means (i) any change to Covered Code; (ii) any new file or other representation of computer program statements that contains any portion of Covered Code; and/or (iii) any new Source Code implementing any portion of the Specifications.

译文:13. "Modification(s)" 指的是 (i) 对所有(被) 覆盖到的代码的修改; (ii) 任何包含有任意部分(被)覆盖到的代码的新文件 或其它计算机程序表述形式;和/或 (iii) 任何对规则中任意部分的实现代码。

所以,很明显,Java不可能是开源软件。还烦请各位自己动手去internet下载安装java >:O

从开源概念诞生之日起,open sourse这个名称就以十倍百倍于free software的频率出现在各种媒体上,各大企业公司也纷纷投入其怀抱。Linux系统能达到今天这个规模,也少不了open source这个名词的贡献。

最近几年,RMS常常强调Free Software与Open Source的区别,这可以从几个方面分析:

1. [Free Software :: Open source] 就好比 [RMS :: Linus],即 [哲学家 :: 工程师]

2. RMS也曾后悔的承认,当年在起草DFSG/OSD时,他应该更多更积极的参与,在其中扮演更重要角色

3. FSF不再是一枝独秀

4. RMS不希望他的纯净的理想被工业化的大潮所污染(可以理解

对于大多数普通人来说,今天的free software多半具有两种含义,狭义上是指使用GPL/LGPL/FDL许可证的软件,广义上则是等同于opensource software。在RMS看来,free software则是一场代表其自由理想的运动,而不仅仅是针对一个或一类软件。

最后引用opensource.org上的话:

The basic idea behind open source is very simple: When programmers can read, redistribute, and modify the source code for a piece of software, the software evolves. People improve it, people adapt it, people fix bugs. And this can happen at a speed that, if one is used to the slow pace of conventional software development, seems astonishing.

开源背后基本理念非常简单:如果程序员可以读,可以再发布,并且可以修改一个软件的源代码,那么软件就能得到进化。人们可以改进它,可以使用它,也可以修正它。这就将会以令那些一直使用慢节奏的传统软件开发模式的人非常吃惊的速度发生。

本文只代表作者个人观点,其中对许可证条款的翻译只是为了方便不善英文的读者,并不是正式的法律文本,也与Sun公司无关。

参考文献

开放性原始码的简介 Eric S. Raymond著 赵平望译 linux.org.tw/CLDP/OLD/gb...pen-source.html

开放性原始码的定义 赵平望译 linux.org.tw/CLDP/OLD/do...source-def.html

Richard Stallman--15年自由软件的历程 linuxforum.net/doc/freesoftware.html

什么是自由软件基金会(FSF)? linuxforum.net/doc/fsf.html

Licenses - GNU Project - Free Software Foundation: fsf.org/licenses/licenses.html

Licenses - GNU Project - Free Software Foundation 中译版: fsf.org/licenses/licenses.cn.html

The Open Source Definition: opensource.org/docs/definition.php

Debian GNU/Linux Java FAQ. :debian.org/doc/manuals/d...-faq/index.html

Sun Community Source License: sun.com/software/java2/license.html

请您支持独立网站发展,转载请注明文章链接:
  • 文章地址: http://wen.org.cn/modules/article/view.article.php/c15/22
  • 引用通告: http://wen.org.cn/modules/article/trackback.php/22

胡钢:必须斩断恶意软件产业链 朱苏力:社会变迁中的法理学问题
相关文章
API: 工具箱 焦点 短消息 Email PDF 书签
请您支持独立网站发展,转载本站文章请提供原文链接,非常感谢。 © http://wen.org.cn
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。



技术支持: MIINNO 京ICP备20003809号-1 | © 06-12 人文与社会