开源软件的定义

开源软件,也被称为开放源代码软件(Open Source Software,OSS)是一种源代码可以任意获取的计算机软件, 这种软件的版权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改、增进提高这款软件的质量。

有些软件的作者只将源代码公开,却不符合“开放源代码”的定义及条件,因为作者可能设置公开源代码的条件限制,诸如限制可阅读源代码的对象、限制派生产品等, 此称之为公开源代码的免费软件(Freeware)(例如知名的模拟器软件MAME),因此公开源代码的软件并不一定可称之为开放源代码软件。

开放源代码的定义由Bruce Perens(曾是Debian的创始人之一),其定义可以在开源软件促进会的网站上找到:http://opensource.org

定义如下:

Free Distribution:自由分发。允许获得源代码的人可自由再将此源代码散布。

Source Code:程序的可执行文件在散布时,必需以随附完整源代码或是可让人方便的事后取得源代码。

Derived Works:让人可依此源代码修改后,再依照同一授权条款的情形下再散布。

Integrity of The Author’s Source Code:意即修改后的版本,需以不同的版本号码以与原始的代码做分别,保障原始的代码完整性。

No Discrimination Against Persons or Groups:开放源代码软件不得 因性别、团体、国家、族群等设置限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。

No Discrimination Against Fields of Endeavor:对程序在任何领域内的利用不得有差别待遇,意即不得限制商业使用。

Distribution of License:若软件再散布,必需以同一条款散布之。

License Must Not Be Specific to a Product:授权条款不得专属于特定产品, 若多个程序组合成一套软件,则当某一开放源代码的程序单独散布时,也必需要符合开放源代码的条件。

License Must Not Restrict Other Software:当某一开放源代码软件与其他 非开放源代码软件一起散布时(例如放在同一光盘),不得限制其他软件的授权条件也要遵照开放源代码的授权。

License Must Be Technology-Neutral:授权条款必须技术中立,意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。

许多人将开放源代码与自由软件视为相同,但若以定义条件而言, 自由软件(Free Software)是开源软件(Open Source Software)的一个子集, 自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件, 要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义: 开放源代码软件就是在GNU通用公共许可证(GPL)下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。简而言之:所有公布软件源代码的程序,都可以称为开放源代码软件。 开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。使用开放源代码开放模式的软件代表就有Linux操作系统。开放源代码开放模式的名字及其特点最早是由美国电脑黑客埃里克·斯蒂芬·雷蒙在他的著作《大教堂和市集》(The Cathedral and the Bazaar)等一系列论文集中提出并探讨的。 严格地说来,开放源代码软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件(开源软件)。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守GPL和BSD许可的软件都是开放的并且是自由的。

许多人将开放源代码与自由软件视为相同,但若以定义条件而言, 自由软件(Free Software)是开源软件(Open Source Software)的一个子集, 自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件, 要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义: 开放源代码软件就是在GNU通用公共许可证(GPL)下发布的软件,以保障软件用户自由使用及接触源代码的权利。这同时也保障了用户自行修改、复制以及再分发的权利。简而言之:所有公布软件源代码的程序,都可以称为开放源代码软件。 开放源代码有时不仅仅指开放源代码软件,它同时也是一种软件开放模式的名称。使用开放源代码开放模式的软件代表就有Linux操作系统。开放源代码开放模式的名字及其特点最早是由美国电脑黑客埃里克·斯蒂芬·雷蒙在他的著作《大教堂和市集》(The Cathedral and the Bazaar)等一系列论文集中提出并探讨的。 严格地说来,开放源代码软件与自由软件是两个不同的概念,只要符合开源软件定义的软件就能被称为开放源代码软件(开源软件)。自由软件是一个比开源软件更严格的概念,因此所有自由软件都是开放源代码的,但不是所有的开源软件都能被称为“自由”。但在现实上,绝大多数开源软件也都符合自由软件的定义。比如,遵守GPL和BSD许可的软件都是开放的并且是自由的。