在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

【RT-Thread學習筆記】常見開源許可協議的區別與聯系

嵌入式物聯網開發 ? 來源:嵌入式物聯網開發 ? 作者:嵌入式物聯網開發 ? 2022-07-30 11:58 ? 次閱讀

作為一個軟件開發人員,你一定也是天天接觸一些開源軟件,比如一些開源的軟件框架,比如開源的操作系統。這里大名鼎鼎就是Linux操作系統了,在服務器領域和嵌入式開發,它決定是大神中的大神級別的存在。

那么,就算我們學會了這么多的開源軟件,我們真的就了解這些開源軟件使用的【開源許可協議】嗎?這年代,不會還真有人理解成:【開源就是免費】吧?

通過閱讀本文,你講會了解到以下幾部分內容:

  • 開源許可協議是什么及它的來源
  • 開源許可協議之間的區別與聯系
  • 幾種常見開源許可協議的主要內容
  • 學習開源許可協議的意義

一、開源許可協議是什么及它的來源

開源許可協議是指開源社區為了維護作者和貢獻者的合法權利,保證軟件不被一些商業機構或個人竊取,影響軟件的發展而開發的協議。它的中文名:開源許可協議;外文名:open source license

開源許可協議是怎么來的呢?

自由軟件/開源軟件是自由的,源代碼開放的,我們可自由下載安裝和使用。

人們不太容易區分一個軟件是否真正開源的根本原因,在于開源研究院認可的許可有60多種。但在這60多種許可中,有一個許可明顯主宰著開源世界。迪博納說:“GPL(General Public License,通用性公開許可協議)是當今開源世界中最重要的許可。”根據迪博納引述的Google所進行的研究,基于GPL的開源代碼在所有開源軟件中占45%---50%。

二、開源許可協議之間的區別與聯系

為了能夠讓大家更加直觀地了解到,各種開源許可協議之間的區別與聯系,我參考了了一些資料,重新畫了這一張圖,供大家參考。下面的內容,我將會圍繞這張圖來展開。

poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

?編輯這張就很清晰地描述了6種常見的開源許可協議之間的區別與聯系,主要圍繞的就是幾個核心問題:

  • 修改源代碼后,是否允許閉源?
  • 每一個修改過后的文件,是否都必須放置版權說明?
  • 是否需要對每一個修改過的文件提供說明文檔?
  • 新增代碼是否需要使用同樣的許可證?
  • 衍生軟件的廣告是否可以使用你的名字進行促銷?

三、幾種常見開源許可協議的主要內容

說起各式各樣的開源許可協議,我們不得不提起GNU,它的全稱是“GNU's Not Unix!”(GNU并非Unix!)的首字母遞歸縮寫。

1985年Richard Stallman又創立了自由軟件基金會(Free Software Foundation)來為GNU計劃提供技術、法律以及財政支持。盡管GNU計劃大部分時候是由個人自愿無償貢獻,但FSF有時還是會聘請程序員幫助編寫。當GNU計劃開始逐漸獲得成功時,一些商業公司開始介入開發和技術支持。當中最著名的就是之后被Red Hat兼并的 Cygnus Solutions。

正因為有了GNU計劃的大力推廣,后面的Linux才逐漸發展壯大,直至今日,它已經走到30個年頭,在服務器領域可謂是一枝獨秀。

也正因為有了Linux的蓬勃發展,慢慢才看到了越來越多的開源軟件走向大眾視野,整個軟件行業才走向了發展的快車道,今后也會是長盛不衰,勇往直前。


下面著重說一下各大流行的開源許可協議的核心內容。

1、Apache開源許可協議

Apache (Apache License) :Apache許可協議,一般常用是2.0版本,Apache 2.0許可證是ASF(Apache Software Foundation,Apache軟件基金會)在2004年發布的,以幫助ASF實現其目標:“通過開源軟件開發協作,提供可靠且長久不衰的軟件產品”。ASF出品的軟件一般都采用Apache 2.0許可證。當然,非ASF的項目也可以使用,Apache許可證設計出來是供所有人使用的。

它的核心內容如下:

你可以隨便用!不會因版權和專利找你麻煩的!

不能用我的商標!

你分發本作品或衍生作品時,可以不再提供源碼!

你在分發時,必須做到:

1)帶上本許可證!

2)保留本軟件的所有版權、專利等說明!

3)你改過的文件,你得說改了哪!

4)NOTICE文件中的信息得保留!

5)在遵循本許可證的條件下,你可以再許可!

6)本作品就這樣了,我不會負任何責任的!你想負責你可以負,但別拉上我!

2、MIT開源許可協議

MIT (Massachusetts Institute of Technology):MIT許可協議之名源自麻省理工學院,又稱“X許可協議”或“X11許可協議”。

MIT內容與三條款BSD許可證(3-clause BSD license)內容頗為近似,但是賦予軟件被授權人更大的權利與更少的限制。

它的核心內容是:

1)被授權人有權利使用、復制、修改、合并、出版發行、散布、再授權及販售軟件及軟件的副本。

2)被授權人可根據程式的需要修改授權條款為適當的內容。

3)在軟件和軟件的所有副本中都必須包含版權聲明和許可聲明。

此授權條款并非屬copyleft的自由軟件授權條款,允許在自由/開放源碼軟件或非自由軟件(proprietary software)所使用。

此亦為MIT與BSD(The BSD license, 3-clause BSD license)本質上不同處。

MIT條款可與其他授權條款并存。另外,MIT條款也是自由軟件基金會FSF)所認可的自由軟件授權條款,與GPL相容。

相對于BSD開源許可協議,MIT開源許可協議是當下流行的開源許可協議中【最為寬松】的許可協議。

3、BSD開源許可協議

BSD (Berkeley Software Distribution) : 伯克利軟件分發許可協議。

BSD開源協議是一個給予使用者很大自由的協議。基本上使用者可以"為所欲為",可以自由的使用修改源代碼,也可以將修改后的代碼作為開源或者專有軟件再發布。

但"為所欲為"的前提是當你發布使用了BSD協議的代碼,或者以BSD協議代碼為基礎做二次開發自己的產品時,需要滿足一些條件。

它的核心內容是:

1)如果再發布的產品中包含源代碼,則在源代碼中必須帶有原來代碼中的BSD協議。

2)如果再發布的只是二進制類庫/軟件,則需要在類庫/軟件的文檔和版權聲明中包含原來代碼中的BSD協議。

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

可以說BSD開源許可協議是當下流行的開源許可協議中【較為寬松】的許可協議。

4、MPL開源許可協議

MPL (Mozilla Public License):Mozilla公共許可協議。

MPL是The Mozilla Public License的簡寫,是1998年初Netscape的 Mozilla小組為其開源軟件項目設計的軟件許可證。MPL許可證出現的最重要原因就是,Netscape公司認為GPL許可證沒有很好地平衡開發者對 源代碼的需求和他們利用源代碼獲得的利益。同著名的GPL許可證和BSD許可證相比,MPL在許多權利與義務的約定方面與它們相同(因為都是符合OSIA 認定的開源軟件許可證)

它的核心內容是:

1)允許免費重發布、免費修改,但要求修改后的代碼版權歸軟件的發起者。

2)這種授權維護了商業軟件的利益,它要求基于這種軟件的修改無償貢獻版權給該軟件。這樣,圍繞該軟件的所有代碼得版權都集中在發起開發人得手中。

3)但MPL是允許修改,無償使用的。

4)MPL軟件對鏈接沒有要求。(要求假如你修改了一個基于MPL協議的源代碼,則必須列入或公開你所做的修改,假如其他源代碼不是基于MPL則不需要公開其源代碼)

5、GPL開源許可協議

GPL (GNU General Public License) :GNU通用公共許可協議。

GNU通用公共許可協議是一個被廣泛使用的自由軟件許可協議條款,GPL 保證了所有開發者的權利,同時為使用者提供了足夠的復制,分發,修改的權利。

它的核心內容是:

1)可自由復制:你可以將軟件復制到你的電腦,你客戶的電腦,或者任何地方。復制份數沒有任何限制。

2)可自由分發:在你的網站提供他人下載,拷貝到U盤送人。

3)可用來盈利:你可以在分發軟件的時候收費,但你必須在收費前向你的客戶提供該軟件的 GNU GPL 許可協議,以便讓他們知道,他們可以從別的渠道免費得到這份軟件,以及你收費的理由。

4)可自由修改:如果你想添加或刪除某個功能,沒問題,如果你想在別的項目中使用部分代碼,也沒問題,唯一的要求是,使用了這段代碼的項目也必須使用 GPL 協議。

需要注意的是,分發的時候,需要明確提供源代碼和二進制文件,另外,用于某些程序的某些協議有一些問題和限制,使用 GPL 協議,你必須在源代碼代碼中包含相應信息,以及協議本身。

6、LGPL開源許可協議

LGPL (GNU Lesser General Public License) :GNU寬通用公共許可協議

GNU 還有另外一種協議,叫做 LGPL (Lesser General Public Licence),它對產品所保留的權利比 GPL 少,總的來說,LGPL 適合那些用于非 GPL 或非開源產品的開源類庫或框架。因為 GPL 要求,使用了 GPL 代碼的產品必須也使用 GPL 協議,開發者不允許將 GPL 代碼用于商業產品。LGPL 繞過了這一限制。

LGPL是GPL的變種,也是GNU為了得到更多的甚至是商用軟件開發商的支持而提出的。與GPL的最大不同是,它有以下幾個核心內容:

1)可以私有使用LGPL授權的自由軟件;

2)開發出來的新軟件可以是私有的而不需要是自由軟件;

3)任何公司在使用自由軟件之前應該保證在LGPL或其它GPL變種的授權下。

四、學習開源許可協議的意義

通過對上面幾種常見的開源許可協議的學習,至少我們肯定已經打破了【開源就是免費】的固化思想,也了解到了【開源并不是簡簡單單把源代碼公開而已】。

從上面的分析,我們可以簡單對上面6中常見開源許可協議在寬松到嚴謹的方向做個簡單排序:

MIT > BSD > Apache > LGPL > Mozalla (MPL) > GPL

在今后使用/學習一些開源軟件/框架的時候,多一個心眼,了解一下它使用的是什么開源許可協議,如果你想基于這個開源軟件/框架進行一些商業行為,請務必了解清楚該開源許可協議的核心內容,以免將來在版本問題上受到法律的制裁。

好了,本期關于開源許可協議的介紹就到這里了,感興趣或者有疑問的,歡迎留言評論。謝謝大家。


參考文章:

百度百科開源許可協議

幾種常見的許可協議

逐句深扒 Apache 許可協議原文,一文看懂!

詳細介紹 MPL (Mozilla Public License) 協議

幾種開源協議的比較

?

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 開源
    +關注

    關注

    3

    文章

    3380

    瀏覽量

    42603
  • 許可協議
    +關注

    關注

    0

    文章

    4

    瀏覽量

    5813
  • RT-Thread
    +關注

    關注

    31

    文章

    1300

    瀏覽量

    40264
收藏 人收藏

    評論

    相關推薦

    RT-Thread學習筆記】使用scons命令生成靜態庫

    RT-Thread學習筆記】如何使用scons 命令中buildlib的生成靜態庫?
    的頭像 發表于 07-27 09:13 ?6106次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】使用scons命令生成靜態庫

    RT-Thread學習筆記】RISC-V匯編基礎三大塊知識

    RT-Thread學習筆記】RISC-V匯編基礎的三大塊知識
    的頭像 發表于 07-30 11:01 ?2789次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】RISC-V匯編基礎三大塊知識

    RT-Thread學習筆記開源許可協議的核心(思維導圖)

    開源許可協議常見開源許可協議的核心內容(思維導圖
    的頭像 發表于 07-30 12:02 ?1868次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】<b class='flag-5'>開源</b><b class='flag-5'>許可</b><b class='flag-5'>協議</b>的核心(思維導圖)

    RT-Thread Nano入門學習筆記

    RT-Thread Nano入門學習筆記
    發表于 11-26 12:36 ?20次下載
    <b class='flag-5'>RT-Thread</b> Nano入門<b class='flag-5'>學習</b><b class='flag-5'>筆記</b>

    RT-Thread 應用筆記 - RTC Alarm 組件的使用

    RT-Thread 應用筆記 - 不正確使用LOG也會引發hard faultRT-Thread 應用筆記 - RTC Alarm 組件的使用RT-
    發表于 01-25 18:18 ?10次下載
    <b class='flag-5'>RT-Thread</b> 應用<b class='flag-5'>筆記</b> - RTC Alarm 組件的使用

    RT-Thread 內核學習筆記 - 理解defunct僵尸線程

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 理解defunct僵尸線程

    RT-Thread 內核學習筆記 - 設備模型rt_device的理解

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發表于 01-25 18:19 ?8次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 設備模型<b class='flag-5'>rt</b>_device的理解

    RT-Thread 內核學習筆記 - 內核對象鏈表結構深入理解

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發表于 01-25 18:23 ?6次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 內核對象鏈表結構深入理解

    RT-Thread 內核學習筆記 - 內核對象初始化鏈表組織方式

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發表于 01-25 18:24 ?3次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 內核對象初始化鏈表組織方式

    RT-Thread 內核學習筆記 - 內核對象操作API

    RT-Thread 內核學習筆記 - 內核對象rt_objectRT-Thread 內核學習筆記
    發表于 01-25 18:26 ?7次下載
    <b class='flag-5'>RT-Thread</b> 內核<b class='flag-5'>學習</b><b class='flag-5'>筆記</b> - 內核對象操作API

    RT-Thread學習筆記 RT-Thread的架構概述

    RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 RT-Thread 的魅力和它相較于其他同類型 RTOS
    的頭像 發表于 07-09 11:27 ?4577次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b> <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread學習筆記】Makefile的FORCE

    RT-Thread學習筆記】十分鐘學會Makefile的FORCE
    的頭像 發表于 07-30 13:55 ?2626次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】Makefile的FORCE

    RT-Thread學習筆記】如何抓取終端的網絡報文

    RT-Thread學習筆記】如何抓取終端的網絡報文?
    的頭像 發表于 07-30 13:57 ?2882次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】如何抓取終端的網絡報文

    RT-Thread學習筆記】用memwatch排除內存泄露

    RT-Thread學習筆記】使用memwatch排除內存泄露
    的頭像 發表于 07-30 14:01 ?2370次閱讀
    【<b class='flag-5'>RT-Thread</b><b class='flag-5'>學習</b><b class='flag-5'>筆記</b>】用memwatch排除內存泄露

    基于RT-Thread Studio學習

    前期準備:從官網下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
    的頭像 發表于 05-15 11:00 ?4056次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio<b class='flag-5'>學習</b>
    主站蜘蛛池模板: 国产精品你懂的| 黄a网站| 稀缺资源呦视频在线网站| 伊人久久大香线蕉综合高清| 又黄又视频| 婷婷色激情| 日韩欧美不卡片| 大又大又粗又爽女人毛片| 欧美午夜视频一区二区三区| 躁天天躁中文字幕在线| 狠狠尻| 国产成人教育视频在线观看| 美女张开大腿让男人桶| 经典三级一区在线播放| bt种子磁力天堂torrent| 天堂资源最新版在线www| 国产高清一级在线观看| 一区二区三区四区视频| 免费免播放器在线视频观看| 一区二区三区中文国产亚洲| 正在播放91| 三级色图| 国产永久视频夜色资源网| 永久看片| 大美女久久久久久j久久| 一区二区三区四区五区| 在线观看免费视频国产| 日本人的色道免费网站| 人人看人人玩| 国产农村女人一级毛片了| 天天综合色天天桴色| 国产精品露脸脏话对白| dvd碟片色爱| 欧美亚洲一区二区三区在线| 欧美日本一区二区| 亚洲成人在线网站| 亚洲欧美日韩色图| 全国男人的天堂网站| 第一页综合| 国产午夜a理论毛片在线影院| 国产不卡毛片|