开源软件的是与非
2009-09-26 18:24:34 Administrator

据IDC调查分析,截止2008年底,全球付费Linux服务器(向用户提供支持服务的Linux版本)约为150万台,免费Linux服务器(不向用户提供支持服务的Linux版本)则与付费Linux服务器基本相当,大约也为150万台左右。所谓“付费Linux”或“付费开源软件”,指具有商业模式的Linux或开源软件版本,而“免费Linux”或“免费开源软件”,指不具商业模式的Linux或开源软件版本。

一 般来说,由开源社区开发并发行的开源软件,即我们称之为“开源项目(Open Source Program)”的开源软件,一般都是“免费开源软件”;而由企业(发行商,Enterprise or Distributor)进行二次开发并发行的开源软件,即我们称之为“开源产品(Open Source Program)”的开源软件,一般是“付费开源软件”。

必须指出,开源社区开发和发行的开源软件,首先要体现自由/开源软件的价值观:开放、共 享、协同、自由、无偿、选择;所谓开源软件是“利他主义”(或“共产主义”,Altruism or Communism)与“利己主义”(或“资本主义”,Capitalism)矛盾的对立和统一(或平衡),即体现自由开源软件价值观与配置商业服务模式的平衡;企业开发和发行的开源软件,是在继承社区开发和发行的开源软件(价值观、开放源代码、开源许可协议)的基础上,进行再开发(二次开发),并采取相 应的商业模式;商业模式是开源软件得以持续发展,实行规模化、产业化的必要条件,开源软件的商业模式是一种以服务为主要内容、实施低价销售战略的模式。

开源软件商业版是基于社区版发展起来的,开源软件商业版与社区版的关系,在实践中可以归纳为如下各种主要类型:

1、双授权模式

如MySQL,MySQL(社区版)执行自由/开源软件许可协议(GPLv3),其源代码开放,人们可从网上免费下载;MySQL(商业版)是基于MySQL(社区版)再开发的,软件授权模式发生了变化,MySQL(商业版)是要收费的,或通过提供服务来收费。又如Apache。Apache(社区、基金会)是一个非盈利性组织,Apache软件基金会只向社会提供开源版本(可在网上免费下载),有一些企业如“ 春之源(Spring Source)”提供支持Apache服务或商业版本,但Apache基金会规定这些企业不能随意使用Apache商标。如果某互联网网站下载Apache软件,安装到服务器(硬件)中,以建立网络/应用服务器系统时,Apache基金会允许他们称为Apache网络/应用服务器,并在其网站上 对外提及“Powered by Apache”。

还有如SugarCRM,也采用双授权模式,其开放的软件(占80%)不收费,不开放的软件(占20%)要收费;另外,如Open Office.org与Star Office的关系,也可归纳为双授权模式。

2、对开源软件社区版进行工程化、产品化处理(二次开发)

如 各种版本的Linux操作系统(产品)。一般由Linux发行商基于Linux(社区版),进行后续的工程化处理或再开发,完成或发布Linux(商业版 或产品版);二次开发的工程化技术包含:
①优化内核,发行商发布的内核源代码为Linux社区发布的“主干(Official)源代码”,允许与其实际执行而不公布的源代码(即发行商的“分支源代 码”)有3-5%的偏差(这是通过测试和经验来获得的)
②兼容性测试和质量认证
③对各种软件模块(在内核中约有1500个左右软件模块)的不同组合或配置(以提高效率)
④回归移植或降级处理(Bug Fix,Patch,back porting)
⑤专用工具和插件
⑥本地化需求功能。社区开发的开源软件(开源项目)是原创性技术,企业后续开发并完成的开源软件(开源产品),是开源技术的成熟化过程或产品化过程(二次开发以促使开源软件趋于稳定、优质、高效、成熟)。企业发行的Linux操作系统软件(产品),继承并开放由社区开发的源代码,但企业开发的工程化技术是不 开放的,含有自主创新因素和自主知识产权,这时Linux操作系统作为成型产品的整体软件是要收费的,或通过服务来收费。

Red Hat的一位开源专家曾说:Red Hat Linux有两种版本,一种是针对“1亿人”的免费版本(或收1元成本费的基本免费版本),这是为大多数人免费提供的社区版,对这种版本,Red Hat不提供Bug Fix、Patch,也不向用户提供支持、服务;另一种是针对“100个人”(这是指企业用户),每户收费“100万元”(向企业提供若干套收费的版本, 并向用户提供Bug Fix、Patch,提供支持和服务)。

3、在开源软件(社区版)上采取附加软件模块的方式

如国内开发的 “银河麒麟”操作系统,它是在Free BSD(开源软件)基础上再开发的(自行开发的主要是安全软件,约占整个软件的不足20%),等于在80%的开源软件上附加上20%的闭源软件模块。这样做的结果,连美国国家安全局(NSA)都认为,“银河麒麟的研发使美国向中国军网进行渗透变得无效”。顺便指出,基于开源软件(社区版),采用附加专用软件模块方式,在二次开发后形成的整体软件中,附加专用模块的构成不得大于20%,这时整体软件才还可称为“开源软件”。

4、定制模式

如Ubuntu,它永远是免费的,用户可任意下载、自由使用和修改(这是指其发布的社区版);Ubuntu也有商业版,这是指由Ubuntu的发行商Canonical为用户定制特别版Ubuntu,Canonical并向用户提供支持和服务,这是要收费的。举例来说,Ubuntu支持服务的收费 标准为:桌面(每套)9ⅹ5,250美元;24ⅹ7,900美元;服务器(每套)9ⅹ5,750美元;24ⅹ7,2750美元。

当然,如Linux内核(Kernel)等一些自由软件,是没有商业模式的。在如上所述的基础上,要回答一些人对开源软件认识的思想误区(谈一谈开源软件的是与非):
* 有人说:Linux都是免费的。不对!如上所述:Linux有免费的和付费的两类;对其他开源软件也如同Linux。
* 有人说:Linux的缺点是不为用户提供支持和服务。不完全对。只有免费的社区版是如此;而对付费的商业版(或企业版、产品版),Linux发行商要为用户提供在产品使用寿命周期内全程的支持和服务。
* 有人说:开源软件不应是商业软件,不应具商业模式。不对!上面说的很清楚了,开源软件可以配置商业服务模式(只有社区版免费的开源软件没有商业模式)。
* 有人问:免费与付费的开源软件在功能与服务上有什么区别?其实,免费的开源软件一般都是原创性的社区版,开源软件(社区版)的性能尚不够成熟,也不能完全满足某些重要用户的特殊需求,它可以免费获得,但得不到开发者的技术支持和相应服务;而收费的开源软件一般都是企业(发行商)后续开发的商业版(或产品 版),此时性能趋于成熟(经工程化开发),能更好满足某些用户的需求(做好定制化开发工作),这时用户虽然要付费,但发行商将为用户提供在产品使用寿命周 期内全程的技术支持和相应服务。
* 有人说:开源软件的开发无国界,是全球志愿者集体开发、合作创新的产物,不能把它限制在某一个企业或某一个国家来进行自主开发或自主创新。其实这说对了一半。开源社区对开源软件进行的原创性开发,是适用于这种说法的,说的完全对!但要使开源软件产品化,趋于成熟,更好地满足用户需求,还要进行工程化、定制 化的后续开发工作,这些开发工作一般由企业(或发行商)来承担,这时的二次开发工作当然体现自主开发创新的特点。对于企业(发行商)最终推出的更为完整的、更加成熟的、产品化的开源软件版本(并配置商业服务模式),则可以称之为某企业的版本(并冠以其商标),也可称之为某地、某国的版本,所以,如果说到 这种版本的“国产化”,我想也是可以的。
* 有人说:开源软件既要体现自由软件的价值观,又要配置商业模式,这是不可调和的矛盾,只能取其一,不能合其二。我要说的是,请你体会一下上面谈到的“开源软件是‘利他主义’与‘利己主义’对立统一(平衡)的产物”这句哲学语言的深刻含义,再看一下上面所列的开源软件社区版与商业版关系的各种类型,这时是否 可以解答你的疑惑,而得出这样的结论:不搞极端,做好统一或平衡是完全可能的。
* 关于开源和微软的操作系统哪个安全的问题,现摘要5月12日《华盛顿时报》透露的9月30日美国国会听证会的有关消息,就一目了然了。《华盛顿时报》发表的署名文章,题目是《中国阻止美国发动网络战争》,文中透露美国政府网络安全专家、国家情报及美国战略司令部顾问凯文·G·科尔曼在美国国会(美中经济与安全评估委员会)听证会上的一些证词,科尔曼说:“美国过去一直利用中国军网和政府网络配备脆弱的操作系统(比如说微软的系统)的服务器的机会进行渗透,自从中国研发了名为银河麒麟(Kylin)这个更加安全的操作系统并于2007年服役后,该系统强化了中国关键的服务器,使美国军方和情报机构再也无法实 行渗透,致使美国网络防卫能力无效!”

当然也要指出,如果只是配置完全开放、透明的开源操作系统软件(社区版),也不足以保证我们网络的安全,网络安全呼唤能将自主创新包含于其中的开源软件。


说完了这些是是非非,我们来看一下开源所带来的四个创新

如果让人们列举几个开源创新,他们很可能会回答 "Linux"、"Kubernetes" 或其他一些特殊项目。但 Friedrich-Alexander University Erlangen-Nürnberg 的开源软件教授 Dirk Riehle 博士不会。Riehle 对开源的研究和写作已经超过十年,当他写到开源创新时,他想到的是更多产生创新代码的基础性元素。因此,Riehle 认为,开源为人们带来了四个创新。

1、法律创新

开源(以及它的亲戚,自由软件)保障三项法律权利:免费使用软件、获取和修改源代码以及能够传播源代码和二进制副本。而许可证则规定了软件的下游接受者修改软件并将其发行时必须履行的义务。Riehle 认为,开源法律创新的意义远比 "只是把软件送出去" 更大。

人们有时会疑惑,为什么开发者不直接把他们的作品放到公共领域。这就忽略了问题的关键所在:将作品放到公共领域,通常意味着作者放弃了自己的权利,大多数作者不希望这样。相反,他们希望明确授予哪些权利,要求哪些义务。如今,一些开源项目遇到了麻烦,比如一些公司利用开源项目进行商业行为而不回馈开源社区。因此,一些开发者开始阻止某些类别的组织使用他们的软件。这是可以理解的。并且,这些事情在开源社区引发了巨大的争论,现在也远未结束。这同时也是开源伟大的地方之一:在社区,人们并不总是相处融洽,但至少愿意互相交流沟通。

2、流程创新

如果说法律创新是开源的"大脑",那么社区就是"心脏"。虽然协作开发并不是从开源开始的,但开源在实践方面所做的工作比任何人或任何事情都要多。在开放合作中,参与是平等的(没有人被先验地排除在外),决策是择优的(决策是基于论证的优劣,而不是基于在企业等级制度中的地位),人们是自组织的(人们选择项目、流程和任务,而不是被分配给他们)。当然,没有一个开源社区能完美地践行这一点(项目并不总是像人们所希望的那样任人唯贤),但社区才是一个项目繁荣的根源(例如,Linux 优于OpenSolaris)。

3、工具创新

在 "唯一不变的是变化 "的格言下,开源软件有一个习惯,就是把软件集中在特定的仓库上,最后把仓库抛弃。今天,世界上大部分的开源软件都驻扎在 GitHub 上,但不久前,它是 Google Code、SourceForge 或一系列其他存储库。然而,无论人们选择在哪里托管这些软件,代码仓库是一个明显的开源创新。另外,Git,一个分布式版本控制系统,同样是一个巨大的开源创新。Git 并不是第一个软件版本控制系统,但它对所有组织如何构建和运营软件产生了深远的影响。

4、商业模式创新

在这个越来越由开源驱动的世界里,人们会越来越关注如何通过开源赚钱。开源正在通过如何创造新的和打破旧的商业模式的方式来改变软件行业。其本身可能不是一种商业模式,但它是一种有效的战略和工具,可以在竞争环境中使用。比如 Open Core 这样的新模式,已经给一些公司带来了巨大收益。因此,人们有理由预期未来用于开源软件开发的资金会增加几个数量级。

而这也这同时意味着,在未来,人们将看到更多的开源创新。