開源協議的選擇

在進行開源軟件選型時,需要留意一下開源協議,開源選件往往可以免費使用,但不意味着隨意使用,根據你的用途,協議的要求會對你產生一定的影響。截止到寫稿時,經過OSI(Open Source Initiative)組織批准的開源協議就有82種之多,可以參見:([https://opensource.org/licenses/alphabetical),]。

我們常見的開源協議有以下幾種:

  • GPL許可:是 GNU General Public License 的縮寫,既GNU通用公共許可協議,是自由軟件基金會(GNU)發佈的一個軟件首選許可,GPL許可一共發佈的三個不版本,最新一版是2007年公佈的GPLv3,最著名的使用GPL許可的軟件就是大Linux。GPL許可的特點就是,使用GPL軟件(包括類庫)或者源代碼(不管多少)的發佈的新產品(包括新增源代碼和可執行二進制文件)也必須使用GPL協議,也要公開源代碼。由於這個許可具有一定的開源強制性,很多大公司對GPL許可的開源軟件的選擇還是比較謹慎的。GPL 協議有很多變種:比如LGPL, AGPL

  • LGPL : LGPL 是 GNU Lesser General Public License 的縮寫 既GNU寬通用公共許可證,相比於GPL,其開源強制性弱一些,對商用軟件更加友好,使用該許可的著名軟件是Linux下的辦公軟件 OpenOffice。按照該許可協議的要求,以類庫方式引入基於LGPL許可的軟件可以不開源其衍生產品的源代碼,單對於LGPL許可授權的源代碼進行修改或者和修改相關的衍生代碼則必須開源且使用LGPL許可進行授權。

  • AGPL:Affero General Public License,簡稱Affero GPL或AGPL,Affero 是一家公司名稱,AGPL最初由該公司撰寫,改許可是相當於GPL的增強版本,主要是對通過網絡發佈服務進行限制。GPL許可本身限制的是軟件的“發佈”行爲,只要是使用了GPL許可的源代碼或者二進制文件,必須開源且以同樣以GPL許可進行授權,但到了互聯網十點,很多互聯網公司並不發佈軟件實體,而是提供“服務”,所以GPL的約束力就明顯下降了,AGPL許可的目的就是填補這個所謂的“漏洞”,改許可要求,除了GPL本身的約束以外,所有基於AGPL許可軟件提供網絡服務,其相關源代碼必須開源,所以在AGPL許可下,網絡服務也被看做一種分發形式。所以很多互聯網公司禁止使用 AGPL 許可的開源軟件。

  • BSD許可:BSD(BSD是Berkly Software Distribution的簡寫)許可最初使用在加州大學伯克利分校發佈的 BSD Unix 系統上,隨着BSD系統的發展,BSD許可也隨之沿用下來。相比於GPL 和 MPL 的嚴格要求,BSD 許可的的要求就非常寬鬆,給予使用者非常大的自由度。在該許可下的軟件可以自由使用修改,也可以將修改後的代碼再次發佈,而且可以是按照閉源的私有軟件進行發佈,只需要在發佈的軟件和中保留BSD許可協議文件即可,但未經許可不能使用原作者或者機構名義進行宣傳和推廣。

  • MPL許可:MPL是 The Mozilla Public License 的做些。是1998年初Netscape的 Mozilla小組爲其開源軟件項目設計的軟件許可證。MPL許可允許經過MPL授權的源代碼和其他授權的文件(包括源代碼和二進制文件)混合使用,甚至剝和私有軟件混合使用,這相當於GPL許可和BSD或類似許可的折中,其既有一定的開源強制性,又保留一定的私有權利。按照該許可要求,使用基於MPL授權源代碼的部分,包括對MPL源代碼的修改部分,必須保持MPL授權,這一點和GPL協議類似,但新增代碼發佈的可使用其他方式授權,甚至是私有授權,也可以比閉源的方式。

  • MIT 許可:MIT 許可是來自麻省理工學院(Massachusetts Institute of Technology, MIT),該許可被認爲是最自由的開源協議之一,也是應用最爲廣泛的開源協議(據blackduck——一家對軟件源代碼進行合規審計的公司,統計,全球有將近1/3的開源軟件使用MIT開源協議),他的協議聲明非常簡短,他和BSD許可類似,允許自由修改發佈基於MIT的代碼和軟件,只需要你的發行版裏包含原始協議文件即可,其他無任何限制,及時使用原始作者的名義進行推廣。使用MIT許可的著名軟件有ssh 客戶端軟件jquery,Rails,putty 和 xwindows等。

  • Apache 2.0許可:改協議是由Apache軟件基金會發布的許可,最初用在像Apache web Server這樣Apache的內部軟件中,2004年公佈了2.0版本。其限制條件和BSD類似,允許自由修改和使用、發佈軟件,但要求保留版權,相比於BSD許可,該許可對版權要求的更細,每一個被修改後的原始文件都要著名原始版權聲明。使用 Apache 2.0許可 著名的軟件有 Android ,Apache web server,swift 等。

很多互利網公司禁止使用 AGPL,以和氣類似的開源許可(CPAL,OSL),甚至用GPL,LGPL,MPL(如果僅僅是內部使用,不以軟件分發的形式出現,也可以自由使用),推薦使用BSD,APache 2.0 和 MIT 許可。

開源軟件也不是免費的午餐,開源許可使用不當也可能引起官司,比如下面的例子:

2007 年 Skype 公司被發現再其網絡語音手持電話的固件中使用了Linux內核代碼,Linux是基於GPL許可的,按照協議規定,skype 必須向售賣該產品的用戶免費提供固件源代碼。但skype並沒有這麼做,只有在2007年2月被告上法庭,並被一德國法庭判有罪。(http://www.cnbeta.com/articles/tech/55365.htmhttp://www.groklaw.net/article.php?story=20080508212535665

2008 年12月11日,自由軟件基金會(FSF)將著名網絡設備生產商Cisco 告上法庭,由於思科公司旗下品牌 Linksys 下的諸多產品使用了包括 Gcc ,GNU binutils 和 GNU C 庫,這些軟件多數是基於GPL或LGPL許可的,但思科公司並未按照許可要求公開相關產品的源代碼。(https://en.wikipedia.org/wiki/Free_Software_Foundation,_Inc._v._Cisco_Systems,_Inc.)

可見,即使是也有“帆船”的時候,要麼是影響公司聲譽,要們是被迫開放源代碼,正所謂填下沒有免費的午餐,選在開源軟件時不要以爲免費就拿來就用,一定要仔細審查開源協議是否符合你的產品要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章