<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      痞子衡嵌入式:開源軟件協議(MIT/BSD/Apache/LGPL/MPL/GPL)


        大家好,我是痞子衡,是正經搞技術的痞子。今天痞子衡給大家講的是關于開源軟件協議基本知識

        牛頓曾說過:“如果我比別人看得更遠,那是因為我站在巨人的肩上”。在軟件開發中如果說也存在巨人的肩膀讓我們站,我想這個巨人應該就是開源軟件。一個優秀的軟件開發人員應該能夠善于學習和利用開源軟件來加速自己的開發,而為了正確地使用開源軟件,我們必須要了解開源軟件協議,今天我們就來聊一聊開源軟件協議這個話題。

      1.開源軟件是什么?

        所謂“開源軟件”(open-source software),字面上理解就是開放源代碼的軟件,即在軟件發行的時候,附上軟件的源代碼,并授權允許用戶更改/自由再散布/衍生著作權。

        開源軟件通常是有copyright(著作權)的,它的License(許可證)可能包含這樣一些額外的限制: 刻意的保護它的開放源碼狀態,著者身份的公告,或者開發的控制。

        提及開源軟件,通常會想到兩個形容詞:免費、自由。開源軟件大多是免費的(但也并不排斥商業收費),開源軟件的使用往往也是相對自由的(自由度取決于其License)。因此常常會與開源軟件造成混淆和誤解的有另外兩個概念:“免費軟件”、“自由軟件

      • 免費軟件:免費提供給用戶使用的軟件,通常并不包含公開其源碼的內容。
      • 自由軟件:在反著作權,倡導軟件這種知識產品應該免費共享的思想下誕生的軟件,當然必須是要開放源代碼的。一個專用的名詞copyleft(著佐權)就是用來形容這種軟件。

        除了前面介紹的3種類型軟件之外,還有一種概念:“商業軟件”,即被用作商品以達到營利目的收費軟件,這種軟件一般不會包含源碼,并且受各種嚴苛的版權限制。

        從上面的介紹可以看出,自由軟件與商業軟件是完全對立的,而開源軟件就是自由軟件與商業軟件的折中,它既繼承了“自由軟件”所提倡的知識共享的理念,同時又允許人們以專利的形式從知識產品中謀取利益,從而保護了人們生產、創造知識產品的積極性。

      2.為什么會存在開源軟件?

        在講為什么會存在開源軟件之前,我們應該先講講商業軟件(私有軟件)到底有哪些弊端,下面是兩點可能存在的弊端:

      • 不利于軟件社會價值的發揮:如果一個軟件已經開發完成,即意味著對軟件開發所需要投入的社會資源已經全部付出了,底下就應該是軟件回報社會的時候了,但軟件私有限制了軟件對社會的貢獻度,導致一定程度的資源浪費。
      • 不利于對軟件的使用和開發:從用戶角度來看:軟件私有是不利于其被進一步使用的,如果現有軟件有不完善的地方,用戶無法基于現有軟件作少許改動以實現進一步需求;而從開發角度來看:軟件私有意味著開發軟件的只能是特定的一群人,很難輕易采集到廣大使用者和二次開發者對軟件發展的意見。

        既然存在開源軟件,說明軟件開源肯定能帶來好處,那具體能幫我們解決什么問題呢?

      • 從用戶使用的角度:使用戶能根據自己的需要來使用、定制軟件。
      • 從軟件本身的角度:開源,讓更多的人參與,更有助于軟件的完善,開發出更優秀的軟件。
      • 從軟件行業的角度:極大的提高軟件開發的生產力,我們能夠自由的復用別人的開發成果,而避免重復勞動。

        總之,軟件開源的目的是為了讓軟件能得到最大范圍的使用。

      3.一大波開源軟件協議

        前面講到,開源軟件都是有License的,猜一下,迄今為止,世界上一共有多少種開源軟件License?據粗略統計有上百種(GNU組織整理的開源協議清單),而通過OSI(Open Source Initiative)組織批準的開源軟件協議目前也有60多種(OSI組織批準的開源協議清單

        雖然有這么多開源軟件協議,但我們只需要了解其中最常用的幾種就足夠了,常用的開源軟件License有如下6種:

      • MIT(The MIT License):源自麻省理工學院,又稱“X條款”(X License)或“X11條款”(X11 License)。
      • BSD(Berkly Software Distribution):源自加州大學柏克利分校,最初是用于該校發表的各個4.4BSD/4.4BSD-Lite版本。
      • Apache(Apache License):著名的非盈利開源組織Apache采用的協議。
      • LGPL( Lesser General Public License):GNU組織制定的寬松通用公共許可證。
      • MPL(The Mozilla Public License):Netscape的Mozilla小組為其開源軟件項目設計的軟件許可證。
      • GPL(General Public License):GNU組織制定的通用公共許可證,由斯托曼撰寫,最初用于GNU計劃。

      4.看懂常見開源軟件協議

        前面介紹了6種常見開源協議的名稱及由來,要去了解每個License具體限制(開放源碼狀態,著者身份的公告,開發的控制),我們可以去一句一句去讀晦澀的License原文,但是還有更簡單的方式迅速區分它們,下面是用于迅速區分的的5個特性:

      • 閉源允許:基于開源軟件進行二次開發的衍生軟件是否可以閉源?
      • 版權聲明:修改過的開源軟件文件是否必須放置原開源軟件版權說明?
      • 品牌推銷:衍生軟件是否可以用原開源軟件的品牌影響力進行推廣?
      • 繼承機制:基于開源軟件開發的新增文件是否也需要采用原開源軟件的License?
      • 改動申明:對開源軟件文件的修改是否需要提供說明文檔?

        按照以上5個特性,我們可以迅速將6種開源軟件協議分類,詳見下圖:

        從開源軟件的個人使用靈活角度來看:MIT是最自由最沒有限制的,MIT協議的開源軟件作者只想保留版權,其他方面任你自由發揮;而GPL限制是最嚴苛的,如果你用了GPL開源軟件,那么你的軟件也必須同樣以GPL協議方式開源。

        從開源軟件的社會傳播影響角度來看:GPL最能推動知識共享,任何基于GPL開源軟件開發的新成果,都能被大眾輕易借鑒和分享;而MIT僅有助于分享開源軟件本身的成果,基于MIT開源軟件開發的新成果往往被二次開發者私有。

      5.常見開源軟件協議之間兼容性

        如果你已經了解了前面介紹的內容,那么你現在應該能夠輕松搞定基于單一開源軟件的二次開發的License問題,但在實際使用中,你的項目可能會存在引用多個開源軟件,此時便涉及到開源軟件協議之間的兼容性問題,即需要考慮兩個核心問題:

      • 多個開源軟件是否可以一起組合使用?
      • 多個開源軟件的使用最終如何確定License?

        開源軟件協議從使用限制強弱上來看,可以分為三大類:放任型、弱保護型、強保護型;一般來講強限制協議可以向下兼容弱限制協議(這意味著軟件最終License取決于強限制協議),但存在限制條件完全對立的兩個協議則無法兼容(這意味著軟件開發不能同時引用這兩個開源軟件)。下圖很好地說明了6種常見開源軟件協議之間的兼容性情況。

        箭頭從A框到B框代表,A框和B框中的協議是兼容的(兩種開源軟件可以組合使用),且最終License取決于B框中協議;而如果兩個框之間沒有單向的箭頭貫通,即意味著兩個框中的協議不兼容(兩種開源軟件不可以組合使用)。

        舉例說明:MIT->BSD->Apache->LGPLv3->GPLv3是一個單向通路,這個通路上的任意兩個及以上的開源軟件都可以組合使用,軟件最終License取決于通路上箭頭最末端開源軟件協議。MPL<-BSD->Apache是一個雙向鏈路,鏈路兩端的MPL和Apache協議是不兼容的,所以無法組合使用。

      6.如何選擇開源軟件協議?

        介紹到這里,開源軟件協議這個話題也就基本結束了,其實你應該知道該如何選擇合適的開源軟件協議了,底下該是你去各大開源社區盡情淘你所需要的開源項目了,還在等什么?不過記住,如果找到了合適開源項目,請記得瀏覽一遍其License內容,說不定你會遇到驚喜,比如下面的這個WTFPL 2.0協議:

                  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                          Version 2, December 2004
      
      Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
      
      Everyone is permitted to copy and distribute verbatim or modified
      copies of this license document, and changing it is allowed as long
      as the name is changed.
      
                  DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
         TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
        0. You just DO WHAT THE FUCK YOU WANT TO.
      

        至此,關于開源軟件協議基本知識痞子衡便介紹完畢了,掌聲在哪里~~~

      歡迎訂閱

      文章會同時發布到我的 博客園主頁CSDN主頁知乎主頁微信公眾號 平臺上。

      微信搜索"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。

      posted @ 2016-10-11 21:54  痞子衡  閱讀(1868)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 美日韩在线视频一区二区三区| 亚洲日韩一区精品射精| 亚洲精品成人福利网站 | av综合亚洲一区二区| 亚洲欧洲国产综合一区二区| 男人av无码天堂| 国产中文字幕在线一区| 欧美精欧美乱码一二三四区| 青青青青久久精品国产| 久久久婷婷成人综合激情| 国产自产对白一区| 强插少妇视频一区二区三区| 欧美人人妻人人澡人人尤物| 野花香视频在线观看免费高清版| 久久热99这里只有精品| japanese丰满奶水| 成人网站免费观看永久视频下载 | 国产免费无遮挡吃奶视频| 国产精品成| 亚洲成年av天堂动漫网站| 一区二区三区四区五区色| 男女激情一区二区三区| 国产精品制服丝袜无码| 四川丰满少妇无套内谢| 欧美亚洲一区二区三区在线| 精品日韩色国产在线观看| 亚洲精品动漫免费二区| 国精产品一区一区三区有限公司杨| 国产欧美一区二区精品性色| 日韩有码中文在线观看| 人人色在线视频播放| 蜜臀91精品国产高清在线| 国产乱码1卡二卡3卡四卡5| 河北区| 国产成人一区二区不卡| 欧美黑人又粗又大又爽免费| 青青青视频免费一区二区| 亚洲国产精品成人无码区| 性XXXX视频播放免费直播| 秋霞人妻无码中文字幕| 成人国产一区二区三区精品|