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

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

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

      從阿里云os和Google之爭看開源協議

      最近IT界比較大的事件就算是阿里云os和Google之爭,里面的細節沒有人知道,但是通過這個事情,我對目前常用的開源協議有了一些了解,也借此機會梳理和總結一下。

      自從自由軟件之父理查德·斯托曼(Richard Stallman)發起的GNU(GNU's not uinix:說實在的,我也不知道他想表達什么) 運動,開源運動如火如荼的發展起來,現在開源已經成為常態了。至少開發人員應該或多或少的知道一點,但是基本上所有的開發都應該使用過開源產品,例如我們最常用的apache。

      由于理查德·斯托曼的認知,認為軟件應該就是應該自由和開放的,開發人員應該很容易獲得源代碼以及進行改動,再把改動之后的源代碼發布出來,就這么簡單的一個想法,在加上Linus Torvalds 等牛逼黑客的加入,GNU影響力越來越大。GNU發布了GPL協議,這個協議和當初創世人的理念有關。

       

      GPL(General Public License)協議主要特點:

      • 所有的源代碼都是公開的,可以自由使用。但是是有版權的
      • 如果對GPL的開源代碼進行修改,就必須把修改之后的代碼進行開源
      • 如果引用了GPL的代碼庫,就必須開源你引用部分的代碼。相當于你的代碼中如果有一行代碼引入了GPL協議的庫函數,就必須把整個代碼開源。就是所說的傳染性
      • 如果使用的是GPL產品,沒有上面的限制。這個說實在的,我覺得真不好界定。例如java中的openjdk,如果你只是使用他的編譯器編譯你的java程序,是沒有必要開源你的java程序
      • GPL是free(自由的),但是是可以收費的。我們經常認為開源的就是免費的,這個是不對的。

      從上面的限制來看,GPL開源協議還是有很大的傳染性的。如果一個商業公司引用了開源代碼或者庫函數,就必須開源引用它的整個代碼。有一些公司不愿意開源咋辦,就不能用了。畢竟對于商業公司來說,代碼是我的資產,我沒有必要開源,所以這個協議對商業公司不是很友好

      LGPL(GNU Lesser General Public License):是GPL的變種,這個是寬松的GPL,對于商業公司比較友好,如果使用了LGPL的庫,可以不開源的你的代碼。與GPL的最大不同是,可以私有使用LGPL授權的自由軟件,開發出來的新軟件可以是私有的而不需要是自由軟件。所以任何公司在使用自由軟件之前應該保證在LGPL或其它GPL變種的授權下。

       

      BSD(FreeBSD Copyright Information):這個算是寬松的協議了,你可以使用和修改它的源代碼,注明使用了他就可以了,你自己的代碼是可以私有的。只要別侵權就可以,比如直接copy了源代碼,說是你自己寫的,這樣就不對了。

       

      Apache Licene:這個和BSD差不多,但是要注意幾點,如果修改了源代碼,要注明修改了什么。開源代碼的商標,專利,所有權都要保留的,不能說修改了開源apache 協議的開源代碼,就直接把代碼的作者寫成你,這樣是不對的。發布產品的時候,對于自己修改的apache 開源代碼,不能夠變成其他的開源協議。

       

      MIT:這個說實在的,我個人見的比較少,這個算是最自由的協議了,和BSD一樣,但是修改了MIT源碼,可以加入自己的授權。 

      常用的也就上面幾種

       

      下面來看看 android的問題

      由于android 使用linux的代碼庫,按照道理來說,android必須以GPL的協議進行開源,但是考慮到GPL對商業上非常不友好,一旦有公司想優化andorid,對android進行定制,也必須開源這一部分代碼。但是google怎么做的了,這個是另外一個篇文章分析里面的一部分

      “Linux kernel 的版權是 GPL。

      這下問題來了:如果你是硬件廠商,希望你的硬件能在 Linux kernel 下運作,那么就必須要有驅動程序。如果驅動程序的程序代碼公開,等于硬件規格也公開的差不多了。許多廠商不愿意這么做,所以就提供編好的驅動程序,但不提供原始碼。

      Android 的重點就是商業應用,Google采用了一些手法來繞過這問題。他們把驅動程序移到 "userspace",也就是說,把驅動程序變成在 Linux kernel 上頭跑,而不是一起跑的東西,這樣就可以避過GPL。然后,在 kernel 這邊開個小門,讓本來不能直接控制到硬件的 "userspace" 程序也可以碰得到,這樣只要把"開個小門"的程序代碼公布就行啦。”

      所以阿里云OS也應該避免不了,至少要公開這個后門部門的源代碼,所以按照道理來說,阿里云要公開這一部分代碼,貌似沒有公開,好奇它是怎么繞開的。

       

      下面是一些常用的開源產品的授權協議:

      tomcat:Apache Licene

      android:Apache Licene

      spring:Apache Licene

      openjdk:GPL

      Mysql:GPL

      Jquery:MIT(貌似是最近改的)

      JBoss:LGPL

      Nginx:BSD

       

      發現通用的代碼庫和開發框架,大多是Apache Licene 授權的,開源的產品大多數是LGPL授權的,apache的產品多是apache license。

      主站蜘蛛池模板: 亚洲另类丝袜综合网| 人人妻人人澡人人爽曰本| 国产一级特黄性生活大片| 波多野结衣高清一区二区三区| 亚洲日韩精品无码av海量| 草草浮力影院| 国产精品久久久天天影视香蕉 | 国产欧美日韩高清在线不卡| 欧洲lv尺码大精品久久久| 久久亚洲精品国产精品| 亚洲精品一二三区在线看| 久久亚洲精品人成综合网| 亚洲色一色噜一噜噜噜| 漂亮的保姆hd完整版免费韩国| 国产亚洲欧洲av综合一区二区三区| 国产精品中文字幕综合| 国精品91人妻无码一区二区三区| 人人澡人摸人人添| 白丝乳交内射一二三区| 日本一区二区精品色超碰| 国产一二三五区不在卡| 国产人妻人伦精品婷婷| 内射极品少妇xxxxxhd| 日韩精品一区二区三区不卡| 国产精品天干天干综合网| 日韩一区二区三区亚洲一| 婷婷色香五月综合缴缴情香蕉| 丰满少妇内射一区| 久久综合色一综合色88欧美| 久久96热在精品国产高清| 最近免费中文字幕大全| 国产亚洲一区二区三不卡| 2020国产欧洲精品网站| 亚洲AV无码国产在丝袜APP| 黄大仙区| 国产精品偷伦费观看一次 | 男女性高爱潮免费网站| 欧美视频二区欧美影视| 啪啪av一区二区三区| 成人亚洲精品一区二区三区 | 国产精品一二三区久久狼|