标准的开源软件定义,实际上是一个许可证制度。开源软件促进会—OSI(Open Source Initiative)对开源软件有明确的定义…
标准的开源软件定义,实际上是一个许可证制度。
开源软件促进会——OSI(Open Source Initiative)对开源软件有明确的定义,业界公认只有符合这个定义的软件才能被称为开放源代码软件,简称开源软件。这个称呼来自于Eric Raymond的提议。
开源软件(Open Source)的具体定义如下:
1) 自由再散布(Free Distribution):允许获得源代码的人可自由再将此源代码散布。
2) 源代码(Source Code):程序的可执行文件在散布时,必需以随附完整源代码或是可让人方便的事后取得源代码。
3) 派生著作(Derived Works):让人可依此源代码修改后,在依照同一授权条款的情形下再散布。
4) 原创作者程序源代码的完整性(Integrity of The Author’s Source Code):意即修改后的版本,需以不同的版本号码以与原始的代码做分别,保障原始的代码完整性。
5) 不得对任何人或团体有差别待遇(No Discrimination Against Persons or Groups):开放源代码软件不得因性别、团体、国家、族群等设置限制,但若是因为法律规定的情形则为例外(如:美国政府限制高加密软件的出口)。
6) 对程序在任何领域内的利用不得有差别待遇(No Discrimination Against Fields of Endeavor):意即不得限制商业使用。
7) 散布授权条款(Distribution of License):若软件再散布,必需以同一条款散布之。
8) 授权条款不得专属于特定产品(License Must Not Be Specific to a Product):若多个程序组合成一套软件,则当某一开放源代码的程序单独散布时,也必需要符合开放源代码的条件。
9) 授权条款不得限制其他软件(License Must Not Restrict Other Software):当某一开放源代码软件与其他非开放源代码软件一起散布时(例如放在同一光盘),不得限制其他软件的授权条件也要遵照开放源代码的授权。
10) 授权条款必须技术中立(License Must Be Technology-Neutral):意即授权条款不得限制为电子格式才有效,若是纸本的授权条款也应视为有效。
较受欢迎的开源软件许可证有Apache License 2.0、BSD、GPL、LGPL、MIT、MPL(Mozilla Public License),等等。具体可查阅 http://opensource.org/licenses/category 。