ITEEDU

open source软件

站长原创,版权所有ITEEDU,2011-07-23

实习也快一个月了,一直在研究open source project,用人家的工具进行自己的项目模块开发,从tesseract-ocr,到imagemagick,再到cgicc,目前该模块接近尾声,现在抽空总结一下子,先总体了解一下子open source 软件。

1.什么是open-source软件

open-source(开放源码)软件是一个新名词,它被定义为描述其源码可以被公众使用的软件,并且此软件的使用,修改和分发也不受许可证的限制。开放源码软件通常是有copyright的,它的许可证可能包含这样一些限制: 着意的保护它的开放源码状态,著者身份的公告,或者
开发的控制。“开放源码”正在被公众利益软件组织注册为认证标记,这也是创立正式的开放源码定义的一种手段。

开放源码软件主要被散布在全世界的编程者队伍所开发,但是同时一些大学,政府机构承包商,协会和商业公司也开发它。开放源码软件在历史上曾经与UNIX,Internet联系的非常紧密。在这些系统中许多不同的硬件需要支持,而且源码分发是实现交叉平台可移植性的唯一实际可行的办法。在DOS,Windows,Macintosh平台上仅仅有很少的用户有可用的编译器,开放源码软件更加不普遍。对开放源码开发模式的更详细的讨论请看Eric Raymond写的“The Cathedral and the Bazaar”。

2.怎样区别开放源码软件和自由软件

历史上许多人开发过这样一种软件(也就是自由软件基础)简称为“free software”,而媒介一般称它为“freeware”。不幸的是这两种术语都被证明是不明确的且含糊的。

对于大多数人来说“free”仅仅用于购买的费用。比这个初始花费更重要的是由于缺乏许可证限制而带来的费用。这些是几种有可能是免费的软件类型,但是明显不是open-source software,因为它们具有某些限制或是缺乏公开的源码:

  • Shareware通常是由个人开发的,一般没有支持且没有公开的源码,它希望得到使用者的资助。
  • Demos/"Crippleware": 免费或低费用试用的软件,是商业软件的一部分,它没有自由可用的源码,没有支持,通常缺乏关键特征。
  • Bundled Software: 它由商业软件携带并且不用增加额外的费用,但是它一般具有很有限的使用许可,没有自由可用的源码。例如: Microsoft Internet Explore.
  • "Consortium-Ware": 源码由公司内部人员共享,但是对公众没有自由可用的源码。例如:Motif.
  • "Non-commercial use only": 这是可以免费从Internet网下载的典型软件,甚至连同源码,但是同时它有严格的许可证限制它的使用。例如:1998年以前的Netscape的浏览器 。

一些Open-source许可证类型

  • BSD(Berkeley Source Distribution)许可证:它要求版权和著者身份申明
  • GPL:通用公共许可证("CopyLeft")禁止派生或分发产品的限制。
  • LGPL:库通用许可证,它不同于GPL许可证,在这个许可证下,库(函数库)可以自由的联接到私有软件。
  • Artistic License: 使作者保持对进一步开发的控制。
  • NPL(Netscape Public Lincense):基于GPL精神的新的许可证,但是保持了对源码更多的控制和所有权(请看下面的“Netscape发展什么”这一节)
  • Public Domain/Not Copyrighted/No Restrictions: 通常用于决定性的算法以鼓励广泛使用,通常由美国政府使用。

3.使用Open-Source的优点

  • 降低风险:拥有源代码使顾客们可以控制那些他们的业务所赖以生存的工具。当一个open-source产品的开发者提高价格,增加了难以接收的限制,或者使用了一些使顾客不满意的方法,另一个不同的组织将使用该源代码开始开发新的产品以解决原来机构的问题。顾客也能自己维护或找别人改进它以达到自己的要求。顾客控制软件,这在传统私有软件模式下是闻所未闻的事情。即使是一些财大气粗的顾客也可能缓解由于传统软件商自己内部的问题而导致严重的金融危机或公司被别的公司收购的风险。
  • 质量:一些研究已经显示了open-source软件与别的可比商业软件具有可靠性上的极大优势。更加有效的开发模式,更多的独立同行对代码和设计的双重审查,以及大部分作者对自己作品的极大荣誉感,都对其优良的质量有所贡献。一些公司甚至给予发现Bug者以物质奖励。
  • 透明度:私有软件有很多“阴暗的死角”,隐藏着许多Bug。源码对于查错和理解产品工作原理来说是很重要的。在大的软件公司,只有极少数人能接触到源码,而这些能接触源码的人通常用户都无法直接接触。能接触源码对于修补安全漏洞来说,也是非常重要的。
  • 正确的特性:一些开放源码的产品--包括上面列举的一些产品--是如此成功,以至于其商业竞争者无法存活。
  • 剪裁:开放源码给用户极大自由,使他们能够按照自己的业务需求定制软件。大型组织能从即使很小的定制行为中削减大量开支和人力成本。用户的挑错和改进反过来对标准开放源码软件包也是个贡献。这在传统的私有软件开发中是不可能得到的。
  • 有利的版权许可和价格:定义为开放源码使得软件在版权许可方面比私有软件具有更大的灵活性。这可以大大削减更多安装带来的花费和时间,对那些采购过程费时费力的机构更加有利。它也能给用户安装软件以更大的自由度。

4.开源软件的发展状况

赢利模式是开源软件发展的根本,这句话首次听起来,好像有些不合理……

但是,事实上,开源软件的免费说至少就目前看来,可能是人们的一种误解。让我们简单地扫描一下当前开源软件的运营模式:第一种,软件完全免费,后续服务收费。像当前的Red Hat Linux就是使用这样的模式。但是,这种模式并不是每一家开源企业都能使用的,也只有像Red Hat这样的行业领先者才有这样的资本。第二种,软件免费,没有售后服务,在软件市场成熟后,靠出售专利谋生。这种方式的代表是Foxmail。第三种,应用服务提供模式。在这种模式下,软件和服务都是免费,企业按时间交纳使用费。最主要的运营模式也就是这几种,其他种类的模式其实都是这几种模式的演化和变种。从中我们可以看出,开源软件本身的确是免费的,但开发者最初的意图其实是为了通过后续服务或出售专利等方式获利。从这个层面来说,天下的确没有免费的误餐。

当然,不排除一些真正的免费的开源软件,不过这只能是一些小型的软件。这些软件不需要集中太多人的就能开发出来,后续也不需要太多人的来维护和升级。而对一些大型软件诸如操作系统等,当前不可能成为免费的开源软件。因此说,如果开源软件找不到自己的赢利模式的话,就很难生存下去,更别提发展了。上海中标软件有限公司常务副总经理秦勇就表示,“在中国国内Linux市场上,虽然现在起得很快,但是整个市场容量、整个市场还不够大,还不足以养活号称国内有9家企业的庞大的Linux家族。”这句话背后的潜台词,很显然企业还是要靠Linux赢利的。

在笔者看来,开源软件的意义就在意源代码的开源,免费只能说是它的一种说法,并不代表实质性意义。因此说,开源软件企业要想生存和发展下去,肯定得寻找自己的赢利模式。然而,就目前来说,能通过开源软件赢利的太少了,即使像Red Hat这样的业界巨头,2004年才实现2亿美金的营业额,别的企业业绩如何可想而知。

事实上,当前无论是国际还是国内的开源软件组织和企业都是少之又少,原因何在,就是因为这些组织和企业没有找到可行的赢利模式,从而没有足够的资金支持企业持续发展下去。