簡介
開放原始碼軟體就是在開放原始碼許可證下發布的軟體,以保障軟體用戶自由使用及接觸原始碼的權利。這同時也保障了用戶自行修改、複製以及再分發的權利。簡而言之,所有公布軟體原始碼的程式都可以稱為開放原始碼軟體。
開放原始碼有時不僅僅指開放原始碼軟體,它同時也是一種軟體開放模式的名稱。使用開放原始碼開放模式的軟體代表就有Linux作業系統。開放原始碼開放模式的名字及其特點最早是由美國電腦黑客 埃里克·史蒂芬·雷蒙在他的著作《大教堂和市集》(The Cathedral and the Bazaar)等一系列論文集中提出並探討的。開放原始碼是信息通訊技術發展引發信息革命所帶來的知識社會條件下面向未來的,以開放創新、共同創新為特點的,以人為本的創新2.0模式在IT行業的典型體現和生動註解。
嚴格地說來,開放原始碼軟體與自由軟體是兩個不同的概念,只要符合開源軟體定義的軟體就能被稱為開放原始碼軟體(開源軟體)。自由軟體是一個比開源軟體更嚴格的概念,因此所有自由軟體都是開放原始碼的,但不是所有的開源軟體都能被稱為“自由”。但在現實上,絕大多數開源軟體也都符合自由軟體的定義。比如,遵守GPL和BSD許可的軟體都是開放的並且是自由的。
開放原始碼軟體運動是一個主要由程式工程師及其它電腦用戶參與的聲勢浩大的運動。它是自由軟體運動的一個分支,但兩者的差別並不明顯。一般而言,自由軟體運動是基於政治及哲學思想(有時被稱為所謂黑客文化)的理想主義運動,而開放原始碼運動則主要注重程式本身的質量提升。
開放原始碼的定義
開放原始碼的定義由Bruce Perens(曾是Debian的創始人之一)定義如下:
原始碼(Source Code):程式的可執行檔在散布時,必需以隨附完整原始碼或是可讓人方便的事後取得原始碼。
原創作者程式原始碼的完整性(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):意即授權條款不得限制為電子格式才有效,若是紙本的授權條款也應視為有效。