Android是開源的移動操作系統

開源軟件(英文:Open source software,簡稱OSS),亦叫開放源代碼軟件、開放源碼軟件、源代碼開放軟件、開放代碼軟件等,是一種除明確表示要公開源代碼,還乎合其餘九種要求,包括允許不受限制地使用、分發、修改,及不能禁止應用範圍等的軟件

一般的軟件僅可取得已經過編譯的二進位可執行檔,通常只有軟件的作者或著作權所有者等擁有程式的原始碼。有些軟件的作者會將源碼公開,此稱之為「開放源代碼」/「源碼開放」「源碼公開」等,但這並不一定符合「開放源碼」的定義及條件,因為作者可能會設定公開原始碼的條件限制,例如限制可閱讀原始碼的對象、限制衍生品等。

定義

開放原始碼軟體(Open Source Software),指的是符合開放源碼促進會(Open Source Initiative,OSI)所訂定開放原始碼定義(Open Source Definition,OSD)的軟體。開放原始碼定義由裴倫斯(Bruce Perens)所擬,其曾經為Debian開發計畫的領導人,並為Debian草擬「Debian自由軟體指導綱要(The Debian Free Software Guidelines,DFSG)」,用來判斷Debian計畫中的程式是否為自由軟體,之後裴倫斯將DFSG加以修改成為開放原始碼定義的第1版。截至2009年3月4日,最新版為為第1.9版,共有十項要點,定義如下[1][2]

  1. 自由再散布(Free Distribution):允許自由再散布程式,並且不可以因此而收取授權金,不過仍然可以收取授權金以外的費用;
  2. (開放)原始碼(Source Code):為了使程式可以被修改,所以必須允許程式以原始碼形式散布。散布原始碼的形式不拘,可以透過電子媒介,也可以透過紙本。而除了直接提供原始碼外,也可以先單獨散布程式的執行檔,若收到執行檔之人想要原始碼時,可以再向散布執行檔著索取原始碼,現行常見的做法是將原始碼放在網路上,於固定網址中提供他人自行下載。
  3. (允許)衍生著作(Derived Works):必須允許他人可以修改原程式,並且允許他人散布修改過的程式。授權條款可以要求修改過的程式必須採用與原程式相同的授權內容,不過此並非是這項定義中強制性的要求。
  4. 原創作者程式原始碼的完整性(Integrity of The Author's Source Code):為了保持原作者原始碼的完整性,授權條款可以要求修改版本冠以不同的版本編號,用來和原程式做區別,或者是要求以修正檔(patch files)附加於原程式的形式來散布修改程式。這項定義並不是強制性。
  5. 不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):為了讓開放原始碼軟體可以廣泛地散布,授權條款內容不得歧視任何人或團體。不過某些國家對於特定種類的軟體設有輸出限制,授權條款中可以提醒使用者可能有這樣的規定必須遵守,不過本身不可能有輸出限制的內容。
  6. 對程式在任何領域內的利用不得有差別待遇(No Discrimination Against Fields of Endeavor):基於和第五項定義同樣的理由,授權條款內容不得限制程式僅可以或不可以在特定領域中運用,當然也不得限制程式在商業領域中的運用。
  7. 散布授權條款(Distribution of License):授權條款中的權利繼續適用於收到程式的所有使用者。這項要件的重點並非在於,修改過的程式仍然必須適用相同的授權條款,因此向GPL這樣的授權條款也符合這項要件。
  8. 授權條款不得專屬於特定產品(License Must Not Be Specific to a Product):這一項定義是防止開放原始碼軟體的程式被封閉起來。若多個程式一同以一個開放原始碼套裝軟體(package)的形式散布時,若其中一個程式單獨被拿出來散布時,授權條款不可以限制這個程式繼續以開放原始碼授權條款散布。
  9. 授權條款不得限制其他軟體(License Must Not Restrict Other Software):一個開放原始碼程式與其他程式在透過同一個散布媒介體散布,例如CD-ROM,此時開放原始碼授權條款不得限制其他一同散布的程式也必須是開放原始碼的。
  10. 授權條款必須技術中立(License Must Be Technology-Neutral):授權條款必須技術中立,必須使程式可以在非網際網路環境以及在非圖形化使用者環境(non-GUI)下散布。若是授權條款規定「點選即視為同意(click -wrap)」的程序作為使用者接受條款的要件,這樣的規定會阻礙程式透過紙本散布,就不符合技術中立要件的要求。一份程式的授權條款若是經開放原始碼組織審核通過,符合開放原始碼定義,就可以在程式散布時標明為經過開放原始碼組織認證通過的開放原始碼軟體。

比較

自由軟件與開源軟件

雖然開源軟件(Open-source software)的定義與自由軟件(Free software)幾乎是相同,而且很少情況一個開源軟件並不等於自由軟件,反之亦然,分別在於他們強調的定位和價值觀不同[3]。自由軟體基金會解釋,開源軟件的命名始於1998年,起初部分人避免「Free」一字引起誤解而起用「Open Source」一詞,不過很快彼此的價值觀出現了很不同的變化,一些開源軟件支持者認為這只是「推廣自由軟件的營銷活動」,不用強調自由軟件的理念和價值觀,務實地向商界份子推銷這種軟件的實際好處,避談他們不太想聽的事(即是私有軟件理念上的對錯),另一些支持者則直接否定自由軟件運動的道德觀和社會觀,所以他們推廣開源軟件時都不談或提倡這些價值觀,開源軟件的定位就是注重於其實際價值,即是如何令到軟件寫得更好、更強、更穩定[3]

簡言之,自由軟件著眼於社會運動,推廣自由(Freedom)的概念,非自由軟件是社會問題;開源軟件則著眼於實際價值,如何改善軟件的質素,非自由軟件是一個非理想的解決方妹[3]

自由軟件支持者不敵視開源軟件支持者,他們的敵人是私有軟件,開源軟件支持者雖然是他們的朋友,不過他們要清晰比外人知道他們所堅持的價值觀,所以他們不接納外人視他們為開源軟件支持者[3]

常見的開源軟件

參予開源運動發展的企業

  • Google公司:Android操作系統
  • 紅帽公司(Red Hat):最大的Linux套件發行商
  • 紅旗Linux:中國最大的Linux發行商
  • 蘋果電腦(Apple):開放了該公司操作系統Mac OS的內核Darwin的原始碼 (但不包括圖形用戶界面)
  • IBM:協助發展多項開放源碼計劃
  • 網景公司(Netscape)/Mozilla基金會:協助發展Mozilla計劃,開發Mozilla FirefoxMozilla Thunderbird
  • 昇陽電腦(Sun Microsystems):發表了Java語言、OpenSolaris、Sun Grid Engine原始碼,並發展OpenOffice.org和MySQL計劃
  • 歐賽克信息技術公司(OSIC):開發了Corncart,全新的開源電子商務軟件
  • 恩信科技(nseerglobal):來自中國的開源ERP軟件提供商,目前已為近200萬家下載用戶貢獻了原創的開源ERP

註解

外部連結

除非另有註明,否則社區內容均使用CC-BY-SA授權條款。