開源協議知多少


自由軟件&開源軟件

自由軟件 Free Software

關乎道德的社會運動,捍衛開發者為任何目的開發的運行程序的自由,研究程序運行原理並修改的自由,以免費或者收費的方式再發布軟件拷貝的自由,改進程序並把改進后的版本發布給公眾的自由

開源軟件 Open Source Software

開源軟件的源代碼可以任意獲取,任何人都能查看修改和分發,本質是一種軟件的開發方式

開源協議

當你選擇了一款開源軟件的同時,也選擇了遵守該軟件的開源協議,常見的開源協議如下

協議簡稱 協議名 最新版本 制定組織
GPL General Pulbic License 3.0 Free Software Foundation
MPL Mozilla Pubklic License 2.0 Mozilla Foundation
LGPL Lesser General Public License 3.0 Free Software Foundation
MIT MIT License MIT
BSD Berkeley Software Distribution Berkeley
ASL Apache License 2.0 Aache

GPL協議

MPL協議

  • 全稱:Mozilla Pubklic License

  • 特點:有限的文件感染性

  • 詳情地址:http://www.mozilla.org/en-US/MPL/2.0/

  • 場景:

    1.在A的基礎上修改得到A+,A+也必須以MPL協議開源

2.可以通過接口程序隔斷傳染

image-20200622211031300

LGPL協議

MIT協議

BSD協議

ASl協議

如何判斷選擇你的軟件開源協議

image-20200622213513194

常用的開源軟件開源協議

Linux

GNU GPL (GNU General Public License GNU通用公共許可證)

  • 復制自由:允許把軟件復制到任何人的電腦中,並且不限制復制的數量。

  • 傳播自由:允許軟件以各種形式進行傳播。

  • 收費傳播:允許在各種媒介上出售該軟件,但必須提前讓買家知道這個軟件是可以免費獲得的;因此,一
    般來講,開源軟件都是通過為用戶提供有償服務的形式來盈利的。

  • 修改自由:允許開發人員增加或刪除軟件的功能,但軟件修改后必須依然基於GPL 許可協議授權。

Spring家族

Apache 2.0 license

  • 該軟件及其衍生品必須繼續使用 Apache 許可協議。

  • 如果修改了程序源代碼,需要在文檔中進行聲明。

  • 若軟件是基於他人的源代碼編寫而成的,則需要保留原始代碼的協議、商標、專利聲明及其他原作者聲明的內容信息。

  • 如果再發布的軟件中有聲明文件,則需在此文件中標注 Apache 許可協議及其他
    許可協議。

Mysql

MySQL是遵守雙重協議的,一個是GPL授權協議,一個是商用授權協議(注釋:為解決其他企業用MySQL軟件牟利或引用了MySQL的源代碼而不想開源)

OpenJDK

JDK的開源版本,采用的協議是GPL with Classpath Exception,查了一下,大概的意思是:就是你用它的模塊,比如Java代碼里面,常見的import語句,是吧,比如import java., javax., javafx.* etc.等等,這些都屬於exception里面的,也就是說,你只是import這些類庫,並且使用它們的話,不受GPL協議影響,你大可以在此基礎之上,制作自己的軟件,並且閉源發布。但是如果你更改了java.base.jmod模塊的源代碼的話,那你的代碼就會被GPL傳染上,要求必需開源,否則就違背了Open JDK的開源協議。

其他基於Apache開源協議的項目

這是apache官網的項目列表,其中我框出了我們通常聽到或者用到的

image-20200622220249198

其他基於GPL開源協議的軟件

如果你經常使用linux的話,你會發現很多你熟悉的軟件,比如grep,gcc,gtk++

其他基於MPL開源協議的軟件

火狐瀏覽器(firefox)

其他基於BSD開源協議的軟件

chromium(谷歌瀏覽器開源版),像國內360瀏覽器,以及最近很火微軟發布的新瀏覽器edge就是采用該項目進行開發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM