开放源代码

开放源代码(英文:Open Source)指一种软件散布模式。

一般的软件仅可取得已经过编译的二进制可执行档,通常只有软件的作者或著作权所有者等拥有程式的源代码。

有些软件的作者会将源码公开,此称之为“源码公开”,但这并不一定符合“开放源代码”的定义及条件,因为作者可能会设定公开源代码的条件限制,例如限制可阅读源代码的对象、限制衍生品等。

开放源代码的定义由Bruce Perens(曾是Debian的创始人之一)定义如下:

  • 自由再散布(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)视为相同,但若以定义条件而言,自由软件仅是开放源代码的一种,也就是自由软件的定义较开放源代码更为严格,并非开放源代码的软件就可称为自由软件,要视该软件的授权条件是否合乎自由软件基金会对自由软件所下的定义。