搜尋
首頁後端開發Golanggo語言是什麼開源協議

go語言是什麼開源協議

Jun 07, 2021 pm 02:20 PM
go語言開源協議

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
Golang vs. Python:利弊Golang vs. Python:利弊Apr 21, 2025 am 12:17 AM

Golangisidealforbuildingscalablesystemsduetoitsefficiencyandconcurrency,whilePythonexcelsinquickscriptinganddataanalysisduetoitssimplicityandvastecosystem.Golang'sdesignencouragesclean,readablecodeanditsgoroutinesenableefficientconcurrentoperations,t

Golang和C:並發與原始速度Golang和C:並發與原始速度Apr 21, 2025 am 12:16 AM

Golang在並發性上優於C ,而C 在原始速度上優於Golang。 1)Golang通過goroutine和channel實現高效並發,適合處理大量並發任務。 2)C 通過編譯器優化和標準庫,提供接近硬件的高性能,適合需要極致優化的應用。

為什麼要使用Golang?解釋的好處和優勢為什麼要使用Golang?解釋的好處和優勢Apr 21, 2025 am 12:15 AM

選擇Golang的原因包括:1)高並發性能,2)靜態類型系統,3)垃圾回收機制,4)豐富的標準庫和生態系統,這些特性使其成為開發高效、可靠軟件的理想選擇。

Golang vs.C:性能和速度比較Golang vs.C:性能和速度比較Apr 21, 2025 am 12:13 AM

Golang適合快速開發和並發場景,C 適用於需要極致性能和低級控制的場景。 1)Golang通過垃圾回收和並發機制提升性能,適合高並發Web服務開發。 2)C 通過手動內存管理和編譯器優化達到極致性能,適用於嵌入式系統開發。

golang比C快嗎?探索極限golang比C快嗎?探索極限Apr 20, 2025 am 12:19 AM

Golang在編譯時間和並發處理上表現更好,而C 在運行速度和內存管理上更具優勢。 1.Golang編譯速度快,適合快速開發。 2.C 運行速度快,適合性能關鍵應用。 3.Golang並發處理簡單高效,適用於並發編程。 4.C 手動內存管理提供更高性能,但增加開發複雜度。

Golang:從Web服務到系統編程Golang:從Web服務到系統編程Apr 20, 2025 am 12:18 AM

Golang在Web服務和系統編程中的應用主要體現在其簡潔、高效和並發性上。 1)在Web服務中,Golang通過強大的HTTP庫和並發處理能力,支持創建高性能的Web應用和API。 2)在系統編程中,Golang利用接近硬件的特性和對C語言的兼容性,適用於操作系統開發和嵌入式系統。

Golang vs.C:基準和現實世界的表演Golang vs.C:基準和現實世界的表演Apr 20, 2025 am 12:18 AM

Golang和C 在性能對比中各有優劣:1.Golang適合高並發和快速開發,但垃圾回收可能影響性能;2.C 提供更高性能和硬件控制,但開發複雜度高。選擇時需綜合考慮項目需求和團隊技能。

Golang vs. Python:比較分析Golang vs. Python:比較分析Apr 20, 2025 am 12:17 AM

Golang适合高性能和并发编程场景,Python适合快速开发和数据处理。1.Golang强调简洁和高效,适用于后端服务和微服务。2.Python以简洁语法和丰富库著称,适用于数据科学和机器学习。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)