2012年2月9日

開放原始碼(開源)授權(Open Source License)比較:GPL, LGPL, BSD, Apache, MIT


 
開放原始碼 (開源碼, open source) 當初被設計出來的理念非常崇高,
甚至可以說作者是帶著理想而設計出這樣子的授權(協議, License)。


相信大家或多或少都聽說過開放原始碼的好處,
藉由每個人讓自己的程式碼透過網路在世界自由流通,
讓程式可以被全世界有著同樣理念的 programmer 檢視、修正及改進,
將可以讓程式與軟體的撰寫、修正更快、更加安全,
規模也不再限於單人的能力,而可以發展出更大的系統。

然而雖然每個人都想自由地分享各自的程式,
但其實大家背後真正的想法還是會不同,
例如有人什麼也不想要,只要這個程式能更好更多人用即可;
有的則想要留下名聲,讓每個使用的人都知道原作者是誰;
有的則又規定這套程式一定不可以被拿來賣錢等等。

因為有太多這些複雜的因素,加上 programmer 又很討厭法律事,
為了讓開放原始碼可以更簡單更容易,
便開始有個人、單位或組織建立了開源授權協議 (Open Source License),
目前常用的大多已經過 Open Source Initiative 核準,
核準後的授權協議書全文都可以在 Open Source Licenses 上找到。

若不熟悉英文,或覺得看英文加法律實在太痛苦了!
台灣也有個自由軟體鑄造場 (Open Source Software Foundry,簡稱 OSSF)
網站中針對常見的 Open Source License 都有全文翻譯,大家可以去看看。
目前最常見也最常被討論及使用的 License 有 GPL, LGPL, BSD, Apache, MIT 等。


GNU General Public License 2.0(GPL)
GPL 是 License 中最具開放原始碼精神的,
然而他在崇尚自由之時,也要求(強迫)所有人一起崇尚自由,
病毒式的感染、傳染常被用來形容 GPL
因為所有只要「引用/修改/衍生自 GPL 授權程式碼的軟體也必須採用GPL授權」
且要求未來所有的使用者、開發者也必須採用同樣的條款。

基於這樣的限制,所以商業軟體或是不打算公開程式碼的軟體和 GPL不可以有任何牽連,
否則受到感染後就只能依 GPL 規定開放原始碼了。
著名的GPL自由軟體包括Linux核心和GCC等。


GNU Lesser General Public License 2.1(LGPL)
由於 GPL 的條款實在是太嚴格了,間接也會影響到程式碼的被採用率,
因此後來也出現了針對放寬 GPL 部份限制後的授權版本,即 LGPL,
二者最大的差異是在「引用」的部份。
若只在程式中引用了採用 LGPL 授權程式的函式庫,
而沒有針對該程式進行修改或衍生,
則依據 LGPL 的條款,引用函式庫的程式便不需要公開程式碼。

和 GPL 比起來,在 LGPL 的授權下,
商業軟體可以引用 LGPL 的函式庫,藉由函式庫提供的功能來開發軟體,
不過對於剛剛提到的「修改/衍生」LGPL 授權的部分,
則同樣必須採用 LGPL 的授權,同樣需要公開原始碼。
著名的 LGPL 自由軟體有 OpenOffice.Org。


至於其他三種:
BSD License(BSD)MIT License(MIT)Apache License 2.0(Apache 2.0)
都是股勵原始碼分享、允許代碼修改、衍生再發佈(開源或商業軟體皆可),
並且注重原始作者著作權的授權,通常需要附上原始授權及部份聲明文件,
但修改者可適度修改所採用的授權內容以符合自身需求。
至於其中的區別,再看看有沒有人可以補充說明,感謝 ^^

關鍵字:開放原始碼, 開源, 授權, Open Source License, 比較, 說明, 介紹, GPL, LGPL, BSD, Apache, MIT, 軟體, 採用
參考資料:


更多精選推薦文章