開源協定是將程式碼(專案)轉化為開源軟體的東西;開源協議規定了你在使用開源軟體時的權利和責任,也就是規定了你可以做什麼,不可以做什麼。開源協議雖然不一定具備法律效力,但當涉及軟體版權糾紛時,開源協議也是非常重要的證據之一。開源協議往往會制定一些特定的條款,只有在滿足這些條款的前提下,該軟體才能用於商業分發。
本教學操作環境:linux7.3系統、Dell G3電腦。
開源軟體在追求「自由」的同時,不能犧牲程式設計師的利益,否則將會影響程式設計師的創造熱情,因此世界上現在有60 多種被開源促進組織(Open Source Initiative)認可的開源授權協議來保證開源工作者的權益。
開源協定規定了你在使用開源軟體時的權利和責任,也就是規定了你可以做什麼,不可以做什麼。開源協議雖然不一定具備法律效力,但當涉及軟體版權糾紛時,開源協議也是非常重要的證據之一。
簡單的來說,開源協定就是將程式碼(專案)轉化為開源軟體的東西。開源授權基本上可以看作是開源依賴項的作者和使用服務的客戶之間合法的綁定契約,約束的內容就是開源程式碼。開源協議往往會制定一些特定的條款,只有在滿足這些條款的前提下,該軟體才能用於商業分發。
對於準備編寫一款開源軟體的開發人員,也非常建議先了解目前最熱門的開源授權協議,選擇一個合適的開源授權協議來最大限度地保護自己的軟體權益。
#Apache License
BSD
BSD是什麼
BSD 是「Berkeley Software Distribution」 的縮寫,意思是「伯克利軟體發行版」。
BSD開源協定
BSD 開源協定是給於使用者很大自由的協定。可以自由的使用,修改原始碼,也可以將修改後的程式碼作為開源或專有軟體再發布。
當你發佈使用了BSD 協定的程式碼,或則以BSD協定程式碼為基礎做二次開發自己的產品時,需要滿足三個條件:
如果再發布的產品中包含原始碼,則在原始程式碼中必須帶有原始程式碼中的BSD 協定。
如果再發布的只是二進位類別庫/軟體,則需要在類別庫/軟體的文件和版權聲明中包含原始程式碼中的BSD協定。
不可以用開源程式碼的作者/機構名字和原來產品的名字做市場推廣。
BSD權利
BSD 程式碼鼓勵程式碼共享,但需要尊重程式碼作者的著作權。
BSD 由於允許用戶修改和重新發布程式碼,也允許使用或在 BSD 程式碼上開發商業軟體發布和銷售,因此是對商業整合友好的協議。
很多的公司企業在選用開源產品的時候都首選 BSD 協議,因為可以完全控制這些第三方的程式碼,在必要的時候可以修改或二次開發。
GPL
GPL是什麼
GPL 全名為GNU General Public License,即GNU通用公共授權協議。
GPL協定
Linux 採用了 GPL 協定。 GPL 協定和 BSD, Apache Licence 等鼓勵程式碼重用的授權很不一樣。
GPL 的出發點是程式碼的開源/免費使用和引用/修改/衍生程式碼的開源/免費使用,但不允許修改後和衍生的程式碼做為閉源的商業軟體發布和銷售。
這也就是為什麼我們可以用免費的各種 Linux,包括商業公司的 Linux 和 Linux 上各種各樣的由個人,組織,以及商業軟體公司開發的免費軟體了。
MIT
MIT是什麼
MIT 是和BSD 一樣寬範的授權協議。 MIT 源自麻省理工學院(Massachusetts Institute of Technology, MIT),又稱 X11 協議。
MIT協定
MIT 與 BSD 類似,但比 BSD 協定更寬鬆,是目前最少限制的協定。這個協議唯一的條件就是在修改後的程式碼或發行包包含原作者的許可訊息,適用商業軟體。
使用 MIT 的軟體專案有:jquery、Node.js。
世界上的開源協定有上百種,很少有人能徹底搞清它們之間的區別,即使在最流行的六種開源協定——GPL、BSD、MIT、Mozilla、Apache 和LGPL——之中做選擇,也很複雜。
烏克蘭程式設計師 Paul Bagwell 畫了一張分析圖,說明該怎麼選擇開源協議,大家看了一目了然,真是清爽。
【相關推薦:程式設計教學】
#以上是開源協議是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!