mysql开源系协议_常见的几种开源协议
在學習中經常能看到一些詞,例如:GPL,LGPL等等,自打上學那會就遇見過,對它們的具體含義卻不了解,今天給它們總結一下。
說到開源協議,不得不提GNU。課本上給的定義是“GNU is Not Unix”,這是官方給出的遞歸定義,永遠也找不到本意,我們可以將它理解為一個自由軟件工程項目或者一種計劃,是由Richard Stallman在1983年9月27公開發起的,它的目標是創建一套完全自由、開放的操作系統。1985年10月Richard Stallman創立了自由軟件基金會(Free Software Foundation ,FSF),其主要工作是執行GNU計劃。為了保證GNU軟件可以自由的“使用、復制、修改、發布”,同樣也禁止部分人在GNU軟件的基礎上自己修改并發布的軟件中添加任何限制他人自由使用的條款,在這個情況下就誕生了GNU的許可條款,再后來又產生了其他的(非GNU)許可條款,統稱為開源許可協議。
這里列舉了最常用的幾種開源協議:
GPL (GNU General Public License) :GNU通用公共許可協議
LGPL (GNU?Lesser General Public License) :GNU寬通用公共許可協議
BSD (Berkeley Software Distribution)? :伯克利軟件分發許可協議
MIT (Massachusetts Institute of Technology):MIT許可協議之名源自麻省理工學院,又稱“X許可協議”或“X11許可協議”
Apache (Apache License) :Apache許可協議
MPL (Mozilla Public License) :Mozilla公共許可協議
1.GPL
GNU通用公共許可協議是一個被廣泛使用的自由軟件許可協議條款,GPL 保證了所有開發者的權利,同時為使用者提供了足夠的復制,分發,修改的權利:
可自由復制
你可以將軟件復制到你的電腦,你客戶的電腦,或者任何地方。復制份數沒有任何限制。
可自由分發
在你的網站提供他人下載,拷貝到U盤送人。
可以用來盈利
你可以在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟件,以及你收費的理由。
可自由修改
如果你想添加或刪除某個功能,沒問題,如果你想在別的項目中使用部分代碼,也沒問題,唯一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。
需要注意的是,分發的時候,需要明確提供源代碼和二進制文件,另外,用于某些程序的某些協議有一些問題和限制,使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議本身。
2.LGPL
GNU 還有另外一種協議,叫做GNU寬通用公共協議,它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用于非 GPL 或非開源產品的開源類庫或框架。因為GPL要求包含有部分GPL授權代碼的軟件以GPL方式發布,這樣開發者就無法在收費的專屬軟件里使用GPL授權代碼。 LGPL正好解決了這一問題:它不要求其它使用LGPL授權代碼的軟件以LGPL方式發布。注意:LGPL有一特點是LGPL軟件可以被轉換成GPL。這種特性對于在GPL庫或應用程序中直接使用LGPL程序有一定程度之幫助。
3.BSD
BSD 在軟件分發方面的限制比別的開源協議(如 GNU GPL)要少。該協議有多種版本,最主要的版本有兩個,新 BSD 協議與簡單 BSD 協議,這兩種協議經過修正,都和 GPL 兼容,并為開源組織所認可。
新 BSD 協議在軟件分發方面,除需要包含一份版權提示和免責聲明之外,沒有任何限制。另外,該協議還禁止拿開發者的名義為衍生產品背書,但簡單 BSD 協議刪除了這一條款。
4.MIT
MIT 協議可能是幾大開源協議中最寬松的一個,核心條款是:
該軟件及其相關文檔對所有人免費,可以任意處置,包括使用,復制,修改,合并,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版 權和許可提示。
這意味著:
你可以自由使用,復制,修改,可以用于自己的項目。
可以免費分發或用來盈利。
唯一的限制是必須包含許可聲明。
MIT 協議是所有開源許可中最寬松的一個,除了必須包含許可聲明外,再無任何限制。
5.Apache
Apache 協議 2.0 和別的開源協議相比,除了為用戶提供版權許可之外,還有專利許可,對于那些涉及專利內容的開發者而言,該協議最適合。
Apache 協議還有以下需要說明的地方:
永久權利
一旦被授權,永久擁有。
全球范圍的權利
在一個國家獲得授權,適用于所有國家。
授權免費,且無版稅
前期,后期均無任何費用。
授權無排他性
任何人都可以獲得授權
授權不可撤消
一旦獲得授權,沒有任何人可以取消。比如,你基于該產品代碼開發了衍生產品,你不用擔心會在某一天被禁止使用該代碼。
分發代碼方面包含一些要求,主要是,要在聲明中對參與開發的人給予認可并包含一份許可協議原文。
6.MPL
MPL既是得到自由軟件基金會承認的自由軟件許可證,也是得到開放源代碼促進會承認的開源軟件許可證。MPL允許在其授權下的源代碼與其他授權的文件進行混合,包括私有許可證。但在MPL授權下的代碼文件必須保持MPL授權,并且保持開源。這樣的條款讓MPL既不像MIT和BSD那樣允許派生作品完全轉化為私有,也不像GPL那樣要求所有的派生作品,包括新的組件在內,全部必須保持GPL。通過允許在派生項目中存在私有模塊,同時保證核心文件的開源,MPL同時激勵了商業及開源社區來參與幫助開發核心軟件。
使用MPL授權的軟件并不受專利的限制,其可以自由使用,修改,并可自由的重新發布。帶有專利代碼的版本仍然可以使用,轉讓,甚至出售,但未經許可則不能修改代碼。此外,MPL并不授予用戶對于開發者商標的使用權。
為了滿足MPL的條款限制,用戶必須負擔一些“責任”,主要是關于散發使用MPL授權的軟件。用戶必須確保重新散發的軟件所有源代碼均以MPL授權,即使是以可執行文件的方式提供或是與其他使用專有軟件授權的源代碼結合也一樣。但若跟以GNU通用公共許可協議、GNU寬通用公共許可證、Affero通用公共許可證授權的源代碼結合則是例外。此時開發者則可選用以上三種更加嚴格的條款來授權。
轉自:http://blog.csdn.net/u014680729/article/details/24382261
總結
以上是生活随笔為你收集整理的mysql开源系协议_常见的几种开源协议的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于vc2017 编译 python 3
- 下一篇: 不动产房屋结构代码_不动产统一登记数据库