什么是"开放源代码软件"

/ns/cn/zs/data/20010129033504.htm

什么是“开放源码软件”?为什么要用这个词?
Open-Source软件:
它是什么?为什么要使用它?什么被带入Netscape?

作者:www.opensource.org

翻译: lily[AKA]

什么是open-source软件?

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

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

为什么open-source软件与软件市场有关系?


传统的商业软件有巨大的广告和商标预算,在这些背后给了它太多的关注,已经远远超出了它的重要性。传统的商业软件事实上只是所有软件的很小的一部分。Lion是被各种组织开发,并且是为了它们自己内部的需要。内部开发源码,特别是被美国政府所命令的重要源码的共享是具有开发源码牌照的。这实际上是由于决大多数软件专家不编写商业软件。


要去定量的描述开放源码软件的整个影响和平均利益是困难的,但是很明显这两者都被公众广泛传播又低估其价值。现在,许多开放源码软件由商业开发支持。同时,开放源码经营模式的成功和开放源码开发的高生产效率及高质量都说服Netscape在1998年年初决定要将它的浏览器开发在开放源码许可之下。


现在有巨大的动力推动著开放源码的运动。看到如此多的传统商业开发者们为了与他同步不得不谋取发展是很有趣的。计算机工业早已看到了几个激动人心的发展和革新的浪潮,例如,二十世纪七十年代的第一台微机,以及八十年代中期到现在对日用微机的大量生产,还有同一时期Internet的崛起。使用开放源码模式的商业软件可能
是下一个重要的新潮流。


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


历史上许多人开发过这样一种软件(也就是自由软件基础)简称为“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: 通常用于决定性的算法以鼓励广泛使用,通常由美国政府使用。

Open-source 软件的一些例子


现在有几百种成熟的open-source产品被广泛使用。这而是一些最著名的:

BSD UNIX: 由California大学Berkeley分校开发的基于"BSD"许可证的软件。许多UNIX商业版本是直接基于BSD源码或者大多从它的设计中借用来的。
Linux: 它从一个芬兰的大学生的研究项目成长为近六年最流行的非Microsoft操作系统。最初它仅仅是为PCs机设计的,可现在它支持Palm Pilots(小型掌中平台),大型的64位Digital Alphas芯片的超级计算机,和在这两者之间的几乎任何事物。与传统操作系统相比它的效率更高,更可靠,更先进。它包括编译程序,库,和来自于FreeSoftware Foundation的各种工具,还有成千上万的open-source产品,Linux平台是一个小的但是却在快速成长的商业产业的基础,还是软件革新的温床。它由商业公司和散布在全世界的自由编程人员基于GPL所开发。
Perl语言:“Internet的传输带”,大多数web服务器的动态内容的基础,广泛用于脚本语言编程和自动化文档处理。它由Perl研究所基于Artistic 许可协议开发。
GCC: GNU C 编译器是许多Unix平台上首选的C/C++编译器,也可以在其他平台上运行;因为支持几乎每种处理器,所以它也被作为一个跨平台的工具而广为流行;它由FSF基于GPL维护、开发。
X Window 系统:使用最广的非microsoft窗口系统,具有先进的跨平台远程执行特性,性能优良,灵活度高;由MIT和X Consortium在类BSD许可协议下开发;其他的增强功能由The XFree86 Project公司开发。
Internet 主干:
BIND: Berkeley Internet Name Daemon; 为几乎所有的Internet域名解析服务器使用,其行为如同一个分散全球的分布式数据库;由ISC(Internet Software Consortium)维护。
BSD SendMail: 邮件传输代理的最高标准。没有任何一家商业竞争者能和它匹敌,绝对安全、健壮;负责处理Internet上超过75%的邮件传输任务,包括象AOL这样的巨型站点---每天有数百万的消息。由SendMail公司基于BSD许可协议维护。
INN:InterNet新闻服务器,操纵Internet上的决大多数Usenet新闻还包括许多企业网。被ISC(BSD)所维护(BSD许可协议)。
Apache: 超过半数的web服务器的动力(远远超出Microsoft和Netscape加起来的数量),早在1998年用于超过百万的web服务器。由Apache组织开发(类BSD许可证维护)。
WU-FTPD: 在Internet网上最流行的FTP服务器,几乎使用于所有的FTP站点。最初是由Bryan O'Connor在Washington大学Louis大街开发的,现在被Academ Consulting Services和许多自愿者维护(BSD许可)。

使用Open-Source的优点

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

什么时候不使用开放源码软件

错误的特性:如果一个开放源码产品不能很好地满足一个组织的需求,而另外的一个私有软件却可以,并且得到一个满足特性的私有软件的成本比再开发修改一个开放源码产品的成本高的话,最好不使用开放源码软件。但参考上面的“剪裁”。
支持: 一些open-source软件传统的付费支持和电话支持。事实上,无论怎样,这都没有一个既没有源代码且无支持的产品严重。请看支持和open source软件一节。
错误的平台:大部分open-source软件主要是支持UNIX和Linux系统的,有时也支持Windows NT。另一些平台,例如大型机,对于移植开放源码软件是个巨大挑战。移植软件从UNIX到Windows NT上要付出很大代价。然而。开放源码的优点几乎可以使平台转换显得更划算。
缺乏技术人员:安装open-source软件有时需要一些更多的技术经验,例如,可以配置或编译源代码的能力。有源代码的优点在一些没有软件开发专家的公司被降低了。open-source的定制也要求有配置管理经验。无论如何,那些充分具有上述技术能力的任何组织都会很好地享受open-source的优点。
惰性:如果现存的所有系统都被很好的支持并完成,就没有必要去改变它们。然而,时常的去检讨这个决定是很重要,因为新技术经常会使它们变得过时。

值得怀疑的避免open-source软件的原因


这些论据常被作为避免使用open-source软件的借口,但是通常经不起推敲。

---对未知的恐惧。
  正如你在上面的“open-source软件的例子”一节所看到的,许多的组织已经严重的依赖open-source软件,不管他们的决策者是否意识到这一点。这个问题由于open-source开发者宣传和使用市场的增加,以及更多的拥护者的出现变得比较容易解决。


---在购买商业软件包上我们已经拥有巨大的投资。
  这仅仅是“必然花费谬误”的一种形式。软件许可证,好象为写字楼付的租金,是一些消费,但不是投资。如果别的产品能很好的以较低的成本实现你的组织的需要,那么过去把钱花费在低级的软件上对
决策不应该产生影响。记住,你可能面临严重的政治上的反对,它来自于那些选择了赞成使用昂贵的,低级的产品,而不愿意承认他们的错误的守旧者。同时,考虑到它们可能被再次扩展,在训练职员和相关基础设施上的投资是完全合理的。

---如果出了问题,我们需要有人负责。
  尽管理论上这听起来很合理,但如果我们一开始就使用可信赖的软件产品,远比在遭受经济损失之后才去控告软件供应商要好的多。几乎所有的主要软件公司都利用最终用户许可证的支持来解决一些由于他们软件的问题而带来的可能要负责的困扰。Microsoft和IBM公司有著庞大的,一流的法律职员,使得顾客的控诉不可能成功。在将来法律可能会越来越偏向软件供应商。

open-source和软件技术支持

商业支持和同几乎是那些正在使用open-source软件的公司最关心的问题了。付费支持是正当的问题,但是这对于open-source产品通常是可用的,而且一般都过高估计了它的重要性。

---许多主要的open-source产品都有可用的技术支持合同。

例如,Red Hat 和Caldera公司对他们销售的linux有电话支持。  Cygnus,Collective Technologies和许多小的顾问公司靠支持和增强open-source软件,生意也做的不错。而且越来越多的open-source软件在保持其开放源码状态的同时,也获得了大量商业维护和支持。

---电子邮件和Usenet新闻支持时非常有效的。

几乎所有开发open-source软件的组织都提供免费的电子邮件支持,提供邮件列表和Usenet新闻组。这些机制比电话支持更加实际有效。在一个有许多软件供应商所支持的调查中,“Linux用户协会”在1997年获得“最好的技术支持奖”,同时也暴露了许多对传统的软件开发商的服务质量的大量不满意见。

---对传统商业软件的支持经常是有限的并且是低质量的。

例如Microsoft公司仅仅提供了为它的所有产品仅仅提供了一个技术支持电话号码:900。许多市场商业销售支持人员把注意力集中在帮助初学者上手上,无法回答使用手册上没有包括的问题。许多软件公司认为传统的电话支持是很昂贵的代价,而因此消减它,这就导致了质量下降。

Netscape的发展趋势


一个著名的计算机工业杂志报道Netscape是“受大量免费和共享软件许可的启发”。事实上,Netscape正在与许多著名的UNIX自由软件开发者互通信息,现在看起来已经非常接近BSD和GPL许可证了。Nescape Public License和GPL有所不同,它使得Nescape对源码的开发和商标上有更多的控制。

Netscape的弃子战术是很聪明的。首先,浏览器的销售在Netscape的业务中已经只占很少一部分了。浏览器的开放源码状态不会对它有太大的冲击,另外有些想要正式技术支持的买家仍然愿意付钱。第二,它真正按照某个开放源码的许可证发放,从而完全改变了Microsoft免费派送Explorer造成的被动局面。这将有助于提高Nescape浏览器的市场份额。最后,Netscape的立场从开放源码社群中获得了友谊,信任度和潜在的巨大革新。Netscape的未来还不能让人放心,尤其是在NT的Web服务器上;但它为Communicator采用的勇敢的、戏剧性的许可证政策不会带来任何损失。


摘自:http://www.opensource.org