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

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

3天內不再提示

如何選擇開源協(xié)議?

工程師 ? 來源:C語言中文網(wǎng) ? 作者:C語言中文網(wǎng) ? 2020-10-23 14:57 ? 次閱讀

素材來源:C語言中文網(wǎng)

編排:strongerHuang

有不少人認為開源就是免費,其實這個觀點是錯誤的,今天就來談談關于開源的內容。

一、關于開源

開源軟件在追求“自由”的同時,不能犧牲程序員的利益,否則將會影響程序員的創(chuàng)造激情,因此世界上現(xiàn)在有 60 多種被開源促進組織(Open Source Initiative)認可的開源許可協(xié)議來保證開源工作者的權益。

開源協(xié)議規(guī)定了你在使用開源軟件時的權利和責任,也就是規(guī)定了你可以做什么,不可以做什么。

開源協(xié)議雖然不一定具備法律效力,但是當涉及軟件版權糾紛時,開源協(xié)議也是非常重要的證據(jù)之一。

對于準備編寫一款開源軟件的開發(fā)人員,也非常建議先了解一下當前最熱門的開源許可協(xié)議,選擇一個合適的開源許可協(xié)議來最大限度保護自己的軟件權益。

二、常見開源協(xié)議

1.GNU GPL(GNU General Public License,GNU通用公共許可證)

只要軟件中包含了遵循 GPL 協(xié)議的產品或代碼,該軟件就必須也遵循 GPL 許可協(xié)議,也就是必須開源免費,不能閉源收費,因此這個協(xié)議并不適合商用軟件。

遵循 GPL 協(xié)議的開源軟件數(shù)量極其龐大,包括 Linux 系統(tǒng)在內的大多數(shù)的開源軟件都是基于這個協(xié)議的。

GPL 開源協(xié)議的主要特點:

復制自由:允許把軟件復制到任何人的電腦中,并且不限制復制的數(shù)量。

傳播自由:允許軟件以各種形式進行傳播。

收費傳播:允許在各種媒介上出售該軟件,但必須提前讓買家知道這個軟件是可以免費獲得的;因此,一般來講,開源軟件都是通過為用戶提供有償服務的形式來盈利的。

修改自由:允許開發(fā)人員增加或刪除軟件的功能,但軟件修改后必須依然基于GPL許可協(xié)議授權。

2.BSD(Berkeley Software Distribution,伯克利軟件發(fā)布版)協(xié)議

BSD 協(xié)議基本上允許用戶“為所欲為”,用戶可以使用、修改和重新發(fā)布遵循該許可的軟件,并且可以將軟件作為商業(yè)軟件發(fā)布和銷售,前提是需要滿足下面三個條件:

如果再發(fā)布的軟件中包含源代碼,則源代碼必須繼續(xù)遵循 BSD 許可協(xié)議。

如果再發(fā)布的軟件中只有二進制程序,則需要在相關文檔或版權文件中聲明原始代碼遵循了 BSD 協(xié)議。

不允許用原始軟件的名字、作者名字或機構名稱進行市場推廣。

BSD 對商業(yè)比較友好,很多公司在選用開源產品的時候都首選 BSD 協(xié)議,因為可以完全控制這些第三方的代碼,甚至在必要的時候可以修改或者二次開發(fā)。

3. Apache 許可證版本(Apache License Version)協(xié)議

Apache 和 BSD 類似,都適用于商業(yè)軟件。Apache 協(xié)議在為開發(fā)人員提供版權及專利許可的同時,允許用戶擁有修改代碼及再發(fā)布的自由。

現(xiàn)在熱門的 Hadoop、Apache HTTP Server、MongoDB 等項目都是基于該許可協(xié)議研發(fā)的,程序開發(fā)人員在開發(fā)遵循該協(xié)議的軟件時,要嚴格遵守下面的四個條件:

該軟件及其衍生品必須繼續(xù)使用 Apache 許可協(xié)議。

如果修改了程序源代碼,需要在文檔中進行聲明。

若軟件是基于他人的源代碼編寫而成的,則需要保留原始代碼的協(xié)議、商標、專利聲明及其他原作者聲明的內容信息

如果再發(fā)布的軟件中有聲明文件,則需在此文件中標注 Apache 許可協(xié)議及其他許可協(xié)議。

4.MIT(Massachusetts Institute of Technology)協(xié)議

目前限制最少的開源許可協(xié)議之一(比 BSD 和 Apache 的限制都少),只要程序的開發(fā)者在修改后的源代碼中保留原作者的許可信息即可,因此普遍被商業(yè)軟件所使用。

使用 MIT 協(xié)議的軟件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。

5.GUN LGPL(GNU Lesser General Public License,GNU 寬通用公共許可證)

LGPL 是 GPL 的一個衍生版本,也被稱為 GPL V2,該協(xié)議主要是為類庫設計的開源協(xié)議。

LGPL 允許商業(yè)軟件通過類庫引用(link)的方式使用 LGPL 類庫,而不需要開源商業(yè)軟件的代碼。這使得采用 LGPL 協(xié)議的開源代碼可以被商業(yè)軟件作為類庫引用并發(fā)布和銷售。

但是如果修改 LGPL 協(xié)議的代碼或者衍生品,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用 LGPL 協(xié)議。因此LGPL協(xié)議的開源代碼很適合作為第三方類庫被商業(yè)軟件引用,但不適合希望以 LGPL 協(xié)議代碼為基礎,通過修改和衍生的方式做二次開發(fā)的商業(yè)軟件采用。

三、如何選擇開源協(xié)議

世界上的開源協(xié)議有上百種(有興趣的讀者請猛擊這里了解),很少有人能徹底搞清它們之間的區(qū)別,即使在最流行的六種開源協(xié)議——GPL、BSD、MIT、Mozilla、Apache 和 LGPL——之中做選擇,也很復雜。

烏克蘭程序員 Paul Bagwell 畫了一張分析圖,說明應該怎么選擇開源協(xié)議,大家看了一目了然,真是清爽。

圖片來自于阮一峰博客

四、開源等于免費嗎?

首先,開源軟件和免費軟件是兩個概念:

開源軟件是指公開源代碼的軟件。 開源軟件在發(fā)行的時候會附上軟件的源代碼,并授權允許用戶更改、傳播或者二次開發(fā)。

免費軟件就是免費提供給用戶使用的軟件。 但是在免費的同時,通常也會有一些限制,比如源代碼不公開,用戶不能隨意修改、不能二次發(fā)布等。

免費軟件的例子比比皆是,QQ、微信、迅雷、酷狗、360 等都是免費軟件,你可以隨意使用,盡情蹂躪;但是,如果你嫌棄它們復雜,自己刪除了一些無用的功能,然后在網(wǎng)上發(fā)布了一個精簡版本供大家下載,那么你就離法院的傳票不遠了。

開源軟件是不抵觸商業(yè)的,開源的目的也不是做慈善事業(yè),而是通過更多人的參與,減少軟件的缺陷,豐富軟件的功能,同時也避免了少數(shù)人在軟件里留一些不正當?shù)暮箝T。開源軟件最終還會反哺商業(yè),讓商業(yè)公司為用戶提供更好的產品。

Android 就是大眾最熟知的一款開源操作系統(tǒng),它除了用在手機上,還用在汽車、平板電腦、電視、智能手表等其它硬件平臺,小米、華為、OPPO、三星等都是 Android 的受益者,他們都賺得盆滿缽滿。

很多著名的開源項目背后都有商業(yè)公司支撐,它們的開發(fā)者也都有正式的工作,享受和我們一樣的社會福利;如果一個成功的開源項目背后沒有商業(yè)公司,這反而是不健康的,社會需要開源和商業(yè)之間的互補來促進技術的革新。

責任編輯:haq

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

    關注

    88

    文章

    3544

    瀏覽量

    93491
  • 開源
    +關注

    關注

    3

    文章

    3189

    瀏覽量

    42245
  • 源代碼
    +關注

    關注

    96

    文章

    2943

    瀏覽量

    66571
收藏 人收藏

    評論

    相關推薦

    基于MM32F5270的Ethernet實現(xiàn)LwIP協(xié)議棧移植

    LwIP是輕量化的TCP/IP協(xié)議,由瑞典計算機科學院(SICS)的Adam Dunkels 開發(fā)的一個小型開源的TCP/IP協(xié)議棧。LwIP具有高度可移植性、代碼開源,提供了三種編程
    的頭像 發(fā)表于 06-21 10:28 ?1017次閱讀
    基于MM32F5270的Ethernet實現(xiàn)LwIP<b class='flag-5'>協(xié)議</b>棧移植

    西門子S7協(xié)議與TCP協(xié)議的區(qū)別

    在工業(yè)自動化領域,通信協(xié)議選擇對于確保設備間的順暢通信和數(shù)據(jù)的可靠傳輸至關重要。西門子S7協(xié)議和TCP協(xié)議作為兩種常用的通信協(xié)議,各自具有
    的頭像 發(fā)表于 06-19 15:54 ?2606次閱讀

    三菱MC協(xié)議與Modbus協(xié)議的區(qū)別

    在工業(yè)自動化領域,通信協(xié)議選擇對于系統(tǒng)的高效、穩(wěn)定運行至關重要。三菱MC協(xié)議和Modbus協(xié)議作為兩種廣泛應用的通信協(xié)議,各自具有獨特的特
    的頭像 發(fā)表于 06-18 11:31 ?1633次閱讀

    深開鴻與中國礦業(yè)大學簽署戰(zhàn)略合作協(xié)議,共筑開源鴻蒙生態(tài)新篇!

    近日,深開鴻與中國礦業(yè)大學簽署戰(zhàn)略合作協(xié)議,雙方將圍繞著軟件研發(fā)創(chuàng)新、開源社區(qū)共建、軟件人才合作三大領域深化合作,共同推動開源鴻蒙技術的發(fā)展與應用。深開鴻開源社區(qū)開發(fā)部總經理巴延興、中
    的頭像 發(fā)表于 06-18 08:33 ?465次閱讀
    深開鴻與中國礦業(yè)大學簽署戰(zhàn)略合作<b class='flag-5'>協(xié)議</b>,共筑<b class='flag-5'>開源</b>鴻蒙生態(tài)新篇!

    Redis 開源協(xié)議調整,我們怎么辦?

    許可,時間點恰逢剛剛完成最新一輪融資,宣布的時機耐人尋味。 Redis 協(xié)議調整,對云計算廠商的影響 Redis 協(xié)議調整聽起來可能沒什么,但在開源項目領域是一個大問題。這并不是 Redis 官方第一次
    的頭像 發(fā)表于 05-09 22:59 ?357次閱讀
    Redis <b class='flag-5'>開源</b><b class='flag-5'>協(xié)議</b>調整,我們怎么辦?

    迅龍軟件加入開放原子開源基金會和OpenHarmony?項目,共建開源新生態(tài)

    近日,迅龍軟件與“開放原子開源基金會”簽署協(xié)議,加入“開放原子開源基金會”(以下簡稱“開源基金會”),成為開源基金會白銀捐贈人,這標志著迅龍
    的頭像 發(fā)表于 04-30 17:50 ?961次閱讀
    迅龍軟件加入開放原子<b class='flag-5'>開源</b>基金會和OpenHarmony?項目,共建<b class='flag-5'>開源</b>新生態(tài)

    發(fā)布/訂閱消息傳遞協(xié)議有哪些?為什么這類協(xié)議在物聯(lián)網(wǎng)應用廣泛

    輕量級的發(fā)布/訂閱消息傳遞協(xié)議,適用于物聯(lián)網(wǎng)設備之間的通信。 2、AMQP 協(xié)議:AMQP 協(xié)議是一種高級消息隊列協(xié)議,也是一種發(fā)布/訂閱消息傳遞協(xié)
    的頭像 發(fā)表于 04-18 15:33 ?430次閱讀

    DDS協(xié)議測試實踐及問題分析

    ,被測協(xié)議選擇了一個在汽車行業(yè)內廣泛使用的開源DDS產品。近年來隨著開源軟件社區(qū)的不斷發(fā)展和成熟,越來越多的整車廠在選擇DDS
    的頭像 發(fā)表于 04-12 08:26 ?486次閱讀
    DDS<b class='flag-5'>協(xié)議</b>測試實踐及問題分析

    RocketMQ協(xié)議是什么?RocketMQ協(xié)議特點

    RocketMQ是由阿里巴巴開發(fā)的開源分布式消息和流處理平臺。它提供可靠、可擴展和高性能的消息傳輸和實時處理解決方案。 RocketMQ使用一種名為RocketMQ協(xié)議的通信協(xié)議。該協(xié)議
    的頭像 發(fā)表于 01-03 16:11 ?750次閱讀

    開放原子開源基金會與 9 個開源項目舉行捐贈簽約儀式

    軟件、OpenTenBase、MetaToC、crowdos、NXROS、Dorothy SSR、onps 開源網(wǎng)絡協(xié)議共 9 個開源項目捐贈方代表共同簽約。 開源項目捐贈簽約儀式 開
    的頭像 發(fā)表于 12-21 17:30 ?774次閱讀
    開放原子<b class='flag-5'>開源</b>基金會與 9 個<b class='flag-5'>開源</b>項目舉行捐贈簽約儀式

    開放原子開源基金會與9個開源項目舉行捐贈簽約儀式

    軟件、OpenTenBase、MetaToC、crowdos、NXROS、Dorothy SSR、onps開源網(wǎng)絡協(xié)議共9個開源項目捐贈方代表共同簽約。 開源項目捐贈簽約儀式 開放原子
    的頭像 發(fā)表于 12-17 15:55 ?708次閱讀

    如何選擇傳輸層協(xié)議?TCP和UDP的優(yōu)缺點和適用場合

    如何選擇傳輸層協(xié)議?TCP和UDP的優(yōu)缺點和適用場合? 傳輸層協(xié)議是計算機網(wǎng)絡中的重要組成部分,它負責在主機之間傳輸數(shù)據(jù)。常見的傳輸層協(xié)議有TCP和UDP。
    的頭像 發(fā)表于 12-11 11:42 ?879次閱讀

    開放原子開源基金會與Eclipse基金會簽署合作協(xié)議

    第一,在開源歷史上,兩個財團首次通過代碼、品牌、ip、認證等方式共同發(fā)展開源生態(tài),為開源行業(yè)提供合作的新模式,為全球開源合作探索發(fā)展的新模式。
    的頭像 發(fā)表于 11-23 12:48 ?418次閱讀

    開放原子開源基金會與Eclipse基金會正式簽署協(xié)議,創(chuàng)造了兩個第一

    Milinkovich基于OpenHarmony的開源項目Oniro正式簽署合作協(xié)議。 簽約照片 本次簽約開放原子開源基金會創(chuàng)造了兩個第一, 一是 開源歷史上第一次兩個基金會通過代碼
    的頭像 發(fā)表于 11-21 20:15 ?554次閱讀
    開放原子<b class='flag-5'>開源</b>基金會與Eclipse基金會正式簽署<b class='flag-5'>協(xié)議</b>,創(chuàng)造了兩個第一

    開源操作系統(tǒng)大全

    開源操作系統(tǒng)即公開源代碼的操作系統(tǒng)軟件,它遵循開源協(xié)議使用、編譯和發(fā)布。自由和開放源代碼軟件中最著名的是 Linux ,它是一種類 Unix 的操作系統(tǒng)。Linux 可安裝在各種計算機
    發(fā)表于 10-27 15:13