自由软件的适用领域探究

节选自我的“Linux内核”课程论文的第五章

5自由软件的发展前景

5.1软件的分类

在此,我先将软件以如下形式分类:

首先将软件分为开源软件(自由软件)和闭源软件。然后将自由软件分为有资金支持和无资金支持。再将有资金支持的自由软件分为有盈利模式的和无盈利模式但有大公司作为支持的。本章余下的部分将在这个分类下进行讨论。

5.2软件走向闭源和商业化的原因

软件走向闭源的原因最主要的就是软件受众的变化。计算机诞生初期,由于使用计算机不普及,所以使用计算机和计算机软件的,都是科学家和程序员。他们有对自己所使用的软件进行修改的能力。而当计算机越来越普及,主要受众开始成为政府、企业、学校中那些可能不懂编程的使用者时,情况就变了:他们没有对自己所使用的软件进行修改的能力,他们对软件源码的支配并不感兴趣,只是希望软件可以运行,并且给出正确的结果,他们需要软件的原作者对软件的Bug修复或是扩充新功能。这样,很多软件作者就看到了商机,将软件闭源卖给消费者使用,而自己则承担修复Bug或扩充新功能的义务。这样,现代软件业就形成了。

可以看出,新的受众群体和闭源软件之间是一个互惠共赢的良好关系。他们之间产生了良好的生态关系,使得越来越多的软件走向闭源。

5.3GNU运动的原宗旨

从历史上看,GNU运动恰好出现在受众转变的历史转折点上。从上面的分析来看,良好的生态圈子使得更多的软件商和实验室开始融入闭源生态圈。这引起了以RMS为主的老一辈程序员的不满。因为他们无法拿到软件的源代码,对他们来说,买一个闭源软件只能拿到软件的使用权,其它的权利,比如修改、分享修改成果,被剥夺了。他们认为这不公平,也不自由。在这个情况下才提出GNU计划。GNU计划的原宗旨就是保护软件的使用者原本该有的对软件的完全的支配权。

5.4CopyLeft体系与传统CopyRight体系的根本区别

CopyLeft体系的许可证与闭源软件的传统CopyRight是有根本性不同的:它们所保护的对象不同。从上一节可以看出,CopyLeft体系许可证的保护对象是使用者,它强调使用者以合法渠道得到软件后,必须对这个软件有完全的支配权。而CopyRight保护的是软件作者,它通过对软件使用者的权利做种种限制,达到对软件作者通过该软件获利的保护。

5.5两类软件受众情况

从第一、二节可以看出,在GNU计划诞生之初,自由软件阵营的受众与闭源软件的受众是不一样的,即一个面向高计算机水平的程序员、黑客,另一个面向不懂编程的普通客户。

而在当前,我们可以明显地发现,在家用、办公领域,自由软件占的比重是相当小的。比如Linux桌面占有率在全球范围内一直在1%左右。而在服务器领域,自由软件所占的比重却非常高。再以Linux为例,其巅峰时期市场占有率超过了60%,而且除了Linux之外,业界常用的BSD系列的操作系统亦是自由软件的一种。

从这些简单的数据可以看出,自由软件与闭源软件的受众从GNU诞生之初就没有太大的变化。下面就着重分析这个现象的原因。

5.6为什么自由软件大多都是免费软件

虽然各种开源协议都没有规定自由软件不能被销售,但是事实上很少人会这么做。因为源代码是可以被任何人拿到的,所以对高手来说,只要对源码进行编译,就能得到一份免费的副本,根本不需要花钱。而只要有一个人将编译好的二进制副本免费公开发行,那么任何人都能得到这个免费的副本。即便是没有人免费发放副本,也会因为同样原因,使得几个人之间展开价格战,最后使原作者的收益为0。所以自由软件是无法卖高价的。

5.7无资金支持的自由软件在桌面领域的困境

所谓无资金支持的自由软件是指单纯依靠个人兴趣和信仰来开发的自由软件。虽然他们可能使用受捐助的方式从自己开发的软件中获得一点利益,但是这不是一个稳定的收入来源。

由于没有稳定的收入来源,所以开发者并不可能将自己的全部精力投入到这个软件中,而只是使用业余时间开发,所以功能相对比较少。而且,相对于大公司的闭源商业软件,这些无资金支持的自由软件大多是没有专业的人员去设计用户界面,而是编码的人以自己的想法进行设计,也没有经过大量的软件测试。所以设计出来的用户界面很可能不友好,也可能Bug非常多,这是普通桌面用户无法接受的。对桌面、办公领域的用户来说更加无法接受的是这些软件大多没有良好稳定的技术支持,而且由于你并没有花钱买软件或是买服务,所以软件作者是没有义务为你提供技术支持。

这样一来,无资金支持的自由软件在普通的桌面领域发展的并不好。

5.8传统盈利模式自由软件的困境

既然自由软件本身不能卖出高价,那么很多人都想到了出售技术支持来获得收入。对于开发者来说这样可以盈利,于是他们可以将自己的主业投入在自由软件的开发之中。这样对于不懂编程的,或者是没法完全以自己的水平去解决软件Bug的用户来说就得到了技术支持。这样看似是一个非常好的良性循环。

Red Hat公司就是以这样一种盈利模式生存的(当然Red Hat是将自己的Linux分成RHELFedora两种,对前者收费,由公司提供更新支持,对后者免费,由社区提供支持,实际上就是向企业收取技术支持费用)。

在很多时间里,Red Hat这种模式几乎是非常成功的。很多大的公司都采用RHEL作为服务器系统来用,RHEL在服务器市场的占有率相当的高。Red Hat公司推出的RHCE认证考试为众人追捧,成为服务器管理界的顶级认证,也能证明Red Hat的成功。

然而Red Hat公司在近几年却碰到了一个困境。由于他们要为他们的用户提供软件的更新,就要直接修改GNU/Linux系统。由于GNU/Linux系统下面的软件包是由GPLLGPL授权的,修改它们之后必须开源发布。所以Red Hat公司就必须发布他们修改之后的源代码。而Red Hat公司确实投入了大量的人力、财力在改进Linux,以至于长期以来一直是对Linux代码贡献最多的公司。这些被Red Hat改进过的代码,甚至是RHEL本身的代码都可以被别人拿来重新编译并发布。于是出现了像CENT Os这样的,将RHEL整个重新编译之后免费发布的发行版。当然这对Red Hat来说不是什么威胁,因为CENT Os是社区产物,并不提供付费技术支持,和Red Hat没有造成竞争的关系。然而当Red Hat的竞争对手Oracle公司也看中了Linux技术支持盈利这块,并且把RHEL的源码拿过来重新编译之后发行Oracle Linux,并且提供相同的技术支持收费服务。这对Red Hat来说打击是很大的。这就有点像中国之前的人民公社一样,干的多的人反而越是遭到不公平待遇。

为了解决这个问题,从RHEL6开始,Red HatRHEL做了很多改动,目的就是给竞争对手设置壁垒。然而,这只是暂时解决问题的小技巧,而不是制度上的长远之策。

造成这种问题的原因正是因为GPL这样的CopyLeft只保护了使用者的权利,却没有保护作者的权利。在一个有着跟明确的生产者——消费者角色分化的模式里,CopyLeft无法避免“人民公社现象”。

5.9兴盛的开源框架与服务器软件市场

现在做程序开发大多都是使用各种框架来开发。比如在大多数企业都使用的Java EE方面,目前最流行的是Spring(Apache许可证)+Struts(Apache许可证)+Hibernate(LGPL许可证)框架。新兴的开发工具、开发框架,比如PythonDjango(BSD许可证)Ruby on Rails(MIT许可证)以及诺基亚的QT(LGPL许可证)都是使用开源的许可证。

而在服务器软件市场,目前最为流行的组合是Linux, Apache或者nginx, Mysql套件,而这些也全部都是自由软件。

为什么在开源框架方面和服务器软件方面,自由软件的发展又会这么好呢?这是因为,在这些领域,软件、框架的受众无一例外都是计算机业内人士。这个受众的情况恰好与GNU计划提出之前,软件的受众是一样的。这并不是巧合,我认为,如果软件的受众是计算机业内人士的话,CopyLeft系列协议可以很好地保障所有人的利益。

以开源框架为例。使用框架来开发软件可以很好地节省成本,所以大家都乐于使用框架。而使用框架的用户必定是程序员,他们不仅有使用框架的能力,也有修改框架的Bug、提升框架性能、加入新特性的能力。这时,如果使用一个闭源框架,开发效率就会大大降低:程序员无法为自己的程序定制新的特性,也无法修改里面可能出现的Bug。而使用开源框架,他们就能做到这些。这时,开源许可证就会发挥重要的作用。比如LGPL会强制使用者对原框架的修改部分开源,而其他的开源许可证也能鼓励或促使新的代码开源。这样,开源框架就越来越健壮。这在服务器市场也是相同的。

之所以说开源许可证能保护所有人的利益,是因为在这个受众群体中,没有明确的生产者——消费者的角色分化。这个社区中,使用者又是作者,对于使用者的保护就是对作者的保护。虽然开源框架、服务器软件并不能赚钱,但是使用他们却可以省钱,这也是获利,而且是大家都获利的局面。这就是一个良性循环,也是开源理念在框架、服务器方面兴盛的原因。

正因如此,目前的一些大公司也迫切希望融入开源框架的开发社区中,这样他们就会赞助那些开源框架开发社区。于是,这些开发社区虽然没有盈利模式,却有资金的赞助,整个项目就进入可持续发展阶段。

5.10Google模式

Google公司近几年一直在不遗余力地推广他们的开源产品,最著名的就是Google Chrome浏览器和Google Android系统。这两个产品的受众都是普通消费者,是有明确的生产者——消费者模式的。

从上面的分析来看,在有明确的生产者——消费者模式中,自由软件应该面临困境才对。然而Google的模式却与以往的开源盈利模式完全不同。

android为例。Google围绕Android系统的盈利主要是两个渠道:一是靠对Android Market中付费软件的提成,一是靠移动平台的广告。这两个盈利渠道只是围绕着Android,却不是直接来自于Android

Google目前是互联网广告方面的绝对垄断者,互联网广告也是Google的主要收入。Google推出Android的目的非常明确,就是通过Android开放的特性,使之广为传播,而Google借助Android传播速度,快速占领手机广告市场。

一个Android软件开发者要盈利,主要通过两个渠道。一是在Android Market上发布付费软件,二是发布免费软件,在软件中贴上广告。如果选择第一种模式,Google便可以收取提成。如果选择第二种模式,那么开发者必定会选择Google这个互联网广告垄断者作为广告供应商。所以无论如何Google都能盈利。

Google不怕别人把Android源码拿来,复制一份在发布出去。因为别人传播的越快,它在手机广告市场的占有率也越快。

这就是Google模式:它本身的主业与自由软件完全无关,但是能通过自由软件的推广,拓展自己主业的市场。

除了Android之外,Google推出Chrome浏览器,赞助FireFox浏览器这些举措,也是同样的道理。

值得一提的是,GoogleAndroid的许可证把握的恰到好处。除了Linux Kernel之外,Android的大部分代码都使用Apache许可证2.0来授权。这样,对于开放手机联盟的别的成员,比如HTC,摩托罗拉等手机生产厂商,可以对Android原始版本进行比较大的修改而不必开源。这样有助于各个独立的手机制造商保留自己在软件上的商业机密,而Android依然在Apache许可证下广泛传播。

5.11本章结论

通过以上的分析,我认为自由软件在以下情况下会发展迅速且持久:

没有明确的生产者——消费者模式,即受众为拥有同样编程能力的程序员。

大公司核心业务与软件无关,但是自由软件能够促进大公司的核心业务,得到大公司支持。

 

No Comments

Post a Comment