下面是一些在讨论自由软件时会经常提及的术语,它解释了哪些种类是和别的相交迭或者是别的种类的一部分。
“自由软件(Free software)”
“开放源码(Open source)”
“公共软件(Public domain software)”
“版权所无软件(Copylefted software)”
“非版权所无软件(Non-copylefted free software)”
“GPL软件(GPL-covered software)”
“GNU系统(The GNU system)”
“GNU软件(GNU software)”
“准自由软件(Semi-free software)”
“专有软件(Proprietary software)”
“共享软件(Shareware)”
“免费软件(Freeware)”
“商业软件(Commercial software)”
该图片取自自由软件基金会
1.自由软件(Free software)
自由软件是指允许任何人使用、拷贝、修改、分发(免费/少许收费)的软件。尤其是这种软件的源代码必须是可得到的。从某种意义上说,“没有源代码,就称不上是(自由)软件。”
如果一个程序是自由的,则它可以被像GNU/Linux这样的自由操作系统所包含。
有许多方法可以使一个程序变成自由的。具体而言,有许多决定性的因素,下面列出了一些:
自由软件实质上是免费的,不标价出售。但有时软件公司在提及价格时使用“free software”这个字眼,他们的意思可能是你可以免费获得一份二进制代码的拷贝,也可能是在你所购买的机器中已经包含了一份拷贝。但是,这种说法与我们在GNU计划中“free software”的意义是不同的。
由于在操作中极易混淆,因此一旦软件公司说他们的软件是自由软件,您一定要检查您是否得到了自由软件所应包括的一切。有时,您得到的是自由软件,有时不是。
在许多语言中,“free”一词有两种意义:一是自由,二是免费。如法语的“libre”和“gratuit”,英语的“gratis”都明白无误地指价格(免费),但没有明白无误地说明“自由”的意义。这是不幸的,因为如果有这个词,在此处它将非常有用。
通常自由软件都比非自由软件更加可靠。
2.开放源代码软件(Open Source software)
“开放源代码”软件或多或少有些自由软件的味道,但我们更赞成自由软件这种说法(这个连接解释了个中原由)。
3.公共域软件(Public domain software)
公共域软件就是没有版权的软件。它是非copyleft自由软件(non-copylefted free software)的一种特殊情况,意味着某些拷贝或修改版不再是自由的。
有时人们很随便地使用“公共域(public domain)”这个字眼来表示“自由(free)”或“免费获得(available gratis)”。然而,“公共域(public domain)”本身有非常精确的含义——“无版权(not copyrighted)”。为清楚起见,我们推荐“公共域(public domain)”一词只使用这个含义;至于其他含义,我们再用其他词来表达。
4.版权所无的软件(Copylefted software)
Copyleft软件是一种自由软件,它的分发条款不允许分销商在分发或修改软件时增加任何额外的限制。这意味着,无论是否修改过,该软件的每个拷贝都是自由软件。
在GNU计划中,我们对所写的所有软件都实行copyleft,因为我们的目标就是使每个用户得到“自由软件”所体现的自由。Copyleft连接更详细地解释Copyleft如何运作以及我们为什么使用它。
Copyleft是一个通用的概念,实际上它也是一个程序,你需要一套具体的分发条款。有很多方法来著述免费分发条款。
5.非版权所无的自由软件(Non-copylefted free software)
非Copyleft自由软件是指作者允许对其进行分发、修改、及增加一些附加限制的软件。
如果程序是自由的但非Copyleft的,那么它的拷贝或修改版本可能就不再是自由的了。软件公司可能对该程序进行了修改,也可能没有,但都可以将它进行编译,然后作为私有软件产品进行分发。
X Window系统阐明了这一点。X 联盟在发布X11时的分发条款中指明该软件是一非Copylefted自由软件。只要你想要,你就可以免费得到带有分发条款的拷贝。然而,它还有一个付费版本,主要用于流行的工作站及PC。如果你正使用这种硬件,那么对你来说,X11就不是自由软件的。
6.GPL 软件(GPL-covered software)
GNU GPL (General Public License)是一个针对免费分发程序的具体分发条款。GNU工程使用她作为分发大部分GNU软件的分发条款。
7.GNU 系统(The GNU system)
GNU系统是一个完全免费的、类Unix操作系统。
一个类Unix操作系统有许多程序组成。我们从1984年开始为这个系统累积构件;“完整GNU系统”的第一个测试版本在1996年发布。我们希望这个系统在一年左右的时间就可以完全成熟以推荐给普通用户使用。
GNU系统包括所有的GNU软件,也包括如X Window和TeX等非GNU软件。
由于GNU的目的是自由,因此在GNU系统中每一个构件都是自由软件。然而它们并不都是免费分发的,任何一种自由软件都可以被吸收进来,只要它们能帮助系统达到技术目标。我们能够也确实在使用一些非Copyleft软件,如X Windows 系统。
8.GNU 软件(GNU software)
GNU软件是在GNU计划赞助下发行的软件。大多数GNU软件是免费分发的(copyleft),但不是所有的都这样;然而,所有的GNU软件必须是自由软件。
有一些GNU软件是由自由软件基金(Free Software Foundation)成员编写的,但大多数GNU软件是志愿者捐献的。有些捐献软件是由自由软件基金免费分发,但有一些软件由作者享有版权。
9.准自由软件(Semi-free software)
准自由软件不是免费的,但允许个人出于非盈利性地使用、拷贝、分发、及修改(包括分发修改版本)。PGP是一个准自由程序的例子。
准自由软件比私有软件好得多;但是还有问题,我们不能在自由操作系统中使用它。
copyleft中所做限制的目的是为了保护所有用户的自由。对我们来说,对使用程序加上的限制的目的是防止其他人附加上其他的限制。准自由程序存在一些限制,决非单纯出于自私的目的。
不可能在自由操作系统中包含准自由软件,其原因在于操作系统的分发条款是其中所有程序分发条款的总和。增加一个准自由程序到操作系统中就使整个系统变成准自由的。我们不想那样做出于以下两个理由:
我们坚信自由软件是为了每一个人——不仅为了学校和业余爱好者们,也包括商业。我们想邀请商业使用GNU系统,因此我们不能在里面包含准自由软件。
商业分发自由操作系统,包括基于Linux的GNU系统,是非常重要的;而且用户也乐于能买到商业CD-ROM分发软件。在操作系统中包含准自由软件会剥夺商业分发的权利。
自由软件基金本身是非商业性的,因此我们获准“在内部”合法使用准自由软件。但我们并没有那样做,因为我们可以获得一个程序并把它包含在GNU中,而那样做会破坏我们的努力。
如果有一个工作需要某软件来完成,而我们并没有一个自由程序来完成它,因此我们有一个缺口,我们不得不对志愿者说,“GNU计划中没有一个程序来做这件事,因此希望你们能写一个。”如果我们使用了一个自由程序来做这件事,则我们自食其言,也(使我们和听信于我们的人)丧失了编写一个自由替代软件的动力。因此,我们不能这样做。
10.专有软件(Proprietary software)
私有软件不是自由及非自由软件,对它的使用、传播、或修改是禁止的,要么需要你申请许可,要么它限制你不能充分自由地使用它。
自由软件基金遵守规定,不在计算机中安装任何私有软件,除非为了编写那个程序的替代品而暂时安装到计算机上。除此之外,我们找不到其他借口要安装私有程序。
例如,在80年代,我们认为在计算机安装Unix是正当的,因为我们要编写一个Unix的免费替代品。现在,由于有了自由操作系统,因此这个借口就不再使用了;我们消除了所有的非自由操作系统,任何新计算机上安装的都是自由操作系统。
我们不能强迫GNU的用户或GNU的贡献者必须依此规则行事;它只是给我们自己制定的规则,但我们希望你能下决心遵从它。
11.免费软件(Freeware)
“freeware”没有一个清晰的定义,但是它通常指那些允许分发不允许修改的软件包(不提供源代码)。这些包不是自由软件,因此不要用“freeware”来指自由软件(自由软件)。
12.共享软件(Shareware)
共享软件允许用户分发该软件,但是任何人想继续使用它需要支付一笔许可费。
共享软件不是自由软件,也不是准自由软件。有两个原因:
对大多数共享软件而言,不提供源代码,因此,你不可能修改程序。
共享软件不允许在不支付许可费的情况下进行拷贝和分发,即使出于个人的非盈利性的目的。(实际上,用户经常忽视分发条款而这样做;当然,分发条款是不允许这样做的)。
13.商业软件(Commercial Software)
商业软件由商业公司开发,通过收取使用费而牟利。“商业”和“私有”不是一回事!大多数商业软件是“私有的”,但也有商业自由软件,也有非商业、非自由的软件。
例如,GNU Ada 永远在GNU GPL条款下进行分发,而且,每一个拷贝都是免费的,但它的开发者却有付费支持合同。当推销员对用户这样说,有时用户回说,“我们觉得商业编译器比较安全一些。”,推销员则回答,“GNU Ada是商业软件,只不过碰巧它也是一个自由软件。”
对GNU计划来说,它的重点是另一个顺序:重要的是GNU Ada是一自由软件;至于它是否是一商业软件不是至关重要的。然而,商业公司在此基础上进行的额外开发则有明显的牟利目的。