首頁  >  文章  >  後端開發  >  go語言是什麼開源協議

go語言是什麼開源協議

青灯夜游
青灯夜游原創
2021-06-07 14:20:565426瀏覽

go語言採用BSD開源協定。 BSD開源協議是給用戶很大自由的協議,可以自由的使用,修改原始碼,也可以將修改後的程式碼作為開源或專有軟體再發布。 BSD代碼鼓勵程式碼共享,但需要尊重代碼作者的著作權。

go語言是什麼開源協議

本教學操作環境:windows10系統、GO 1.11.2、Dell G3電腦。

go語言是什麼開源協定?

Go語言來自貝爾實驗室,由一門Limbo語言發展而來。 Limbo用於開發在小型電腦上的分散式應用,支援模組化程式設計、編譯期和運行時的強型別檢測,進程內基於有類型的通訊通道,原子性垃圾收集和簡單的抽象資料類型,其宗旨為:即使在沒有硬體保護的小型機上也能安全運作。 Go和Limbo是由同一批人開發的,具有同樣優秀的特性。 Go於2007年出生在谷歌,Google支持使用20%的自由時間發展實驗項目,與2009年問世。 Go語言是開源的,採用BSD協定。

BSD開源協定是給於使用者很大自由的協定。可以自由的使用,修改原始碼,也可以將修改後的程式碼作為開源或專有軟體再發布。當你發佈使用了BSD協定的程式碼,或是以BSD協定程式碼為基礎做二次開發自己的產品時,需要滿足三個條件:

  • 如果再發行的產品中包含原始碼,則在原始碼中必須帶有原始程式碼中的BSD協定。

  • 如果再發布的只是二進位類別庫/軟體,則需要在類別庫/軟體的文件和版權聲明中包含原始程式碼中的BSD協定。

  • 不可以用開源程式碼的作者/機構名字和原來產品的名字做市場推廣。

BSD程式碼鼓勵程式碼共享,但需要尊重程式碼作者的著作權。 BSD由於允許用戶修改和重新發布程式碼,也允許使用或在BSD代碼上開發商業軟體發布和銷售,因此是對商業整合友好的協議。很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的程式碼,在必要的時候可以修改或 二次開發。

擴充資料:五種開源協定的比較(BSD,Apache,GPL,LGPL,MIT)

BSD開源協定(original BSD license、FreeBSD license、Original BSD license)

BSD開源協定是一個給於使用者很大自由的協定。基本上使用者可以」為所欲為」,可以自由的使用,修改原始碼,也可以將修改後的程式碼作為開源或專有軟體再發布。

但」為所欲為」的前提當你發佈使用了BSD協定的程式碼,或則以BSD協定程式碼為基礎做二次開發自己的產品時,需要滿足三個條件:

如果再發布的產品中包含原始碼,則在原始程式碼中必須帶有原始程式碼中的BSD協定。如果再發布的只是二進位類別庫/軟體,則需要在類別庫/軟體的文檔和版權聲明中包含原始程式碼中的BSD協定。不可以用開源程式碼的作者/機構名字和原來產品的名字做市場推廣。

BSD 程式碼鼓勵程式碼共享,但需要尊重程式碼作者的著作權。 BSD由於允許用戶修改和重新發布程式碼,也允許使用或在BSD代碼上開發商業軟體發布和銷售,因此是對 商業整合友好的協議。而很多的公司企業在選用開源產品的時候都首選BSD協議,因為可以完全控制這些第三方的程式碼,在必要的時候可以修改或二次開發。

Apache Licence 

Apache Licence是著名的非營利開源組織Apache所採用的協定。該協議和BSD類似,同樣鼓勵程式碼共享和尊重原作者的著作權,同樣允許程式碼修改,再發布(作為開源或商業軟體)。需要滿足的條件也和BSD類似:

需要給程式碼的使用者一份Apache Licence如果你修改了程式碼,需要再被修改的檔案中說明。在延伸的程式碼中(修改和有原始碼衍生的程式碼中)需要帶有原來程式碼中的協議,商標,專利聲明和其他原來作者規定需要包含的說明。如果再發布的產品中包含一個Notice文件,則在Notice文件中需要帶有Apache Licence。你可以在Notice中增加自己的許可,但不可以表現為對Apache Licence構成更改。

Apache Licence也是對商業應用友善的授權。用戶也可以在需要的時候修改程式碼來滿足需求並作為開源或商業產品發布/銷售。

GPL(GNU General Public License)

我們很熟悉的Linux就是採用了GPL。 GPL協定和BSD, Apache Licence等鼓勵程式碼重用的授權很不一樣。 GPL的出發點是程式碼的開源/免費使用和引用/修改/衍生代碼的開源/免費使用,但不允許修改後和衍生的代 碼做為閉源的商業軟體發布和銷售。這也就是為什麼我們能用免費的各種linux,包括商業公司的linux和linux上各種各樣的由個人,組織,以及商 業軟體公司開發的免費軟體了。

GPL協議的主要內容是只要在一個軟體中使用(”使用」指類庫引用,修改後的程式碼或衍生代碼)GPL 協議的產品,則該軟體產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的」傳染性」。 GPL協議的產品作為一個單獨的產品使用沒有任何問題,還可以享受免費的優勢。

由於GPL嚴格要求使用了GPL類別庫的軟體產品必須使用GPL協議,對於使用GPL協議的開源程式碼,商業軟體或對程式碼有保密要求的部門就不適合整合/採用作為類別庫和二次開發的基礎。

其它細節如再發布的時候需要伴隨GPL協定等和BSD/Apache等類似。

LGPL(GNU Lesser General Public License)

#LGPL是GPL的一個為主要為類別庫使用設計的開源協定。且GPL要求任何使用/修改/衍生之GPL類別庫的的軟體必須採用GPL協定不同。 LGPL 讓商業軟體可以透過類別庫引用(link)方式使用LGPL類別庫而不需要開源商業軟體的程式碼。這使得採用LGPL協議的開源程式碼可以被商業軟體作為類庫引用並 發布和銷售。

但是如果修改LGPL協定的程式碼或衍生,則所有修改的程式碼,涉及修改部分的額外程式碼和衍生的程式碼都必須採用LGPL協定。因此LGPL協議的開源 程式碼很適合作為第三方類別庫被商業軟體引用,但不適合希望以LGPL協議程式碼為基礎,透過修改和衍生的方式做二次開發的商業軟體採用。

GPL/LGPL都保障原作者的智慧財產權,避免有人利用開源程式碼複製並開發類似的產品

##MIT(MIT)

MIT是和BSD一樣寬範的許可協議,作者只想保留版權,而無任何其他了限制.也就是說,你必須在你的發行版裡包含原許可協議的聲明,無論你是以二進制發布的還是以原始碼發布的.

推薦學習:

Golang教程

以上是go語言是什麼開源協議的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn