各種開源授權許可協議對比分析

 

GPL

LGPL

Apache

BSD

類庫引用再發行

用作商業用途必須開源

基於類庫以上的軟件程序用作商業用途可不必開源,需表明出處,原作者相關信息。

基於類庫以上的軟件程序用作商業用途可不必開源,但在源文件中需包含原作者的協議、商標、專利聲明和其他原作者規定需要包含的說明Apache開源許可協議具有延續性

基於類庫以上的軟件程序用作商業用途,可不必開源,但需標明原作品出處。並且在此基礎上,可定義自己的開源授權許可。BSD協議不具有延續性

修改源碼再發行

用作商業用途必須開源

用作商業用途必須開源

修改後的軟件程序軟件程序用作商業用途可不必開源,但在源文件中需包含原作者的協議、商標、專利聲明和其他原作者規定需要包含的說明Apache開源許可協議具有延續性

基於類庫以上的軟件程序用作商業用途,可不必開源,但需標明原作品出處。並且在此基礎上,可定義自己的開源授權許可。BSD協議不具有延續性

 

 

 

操作系統開源授權協議說明

 

Linux

Andriod

開源授權協議

GPL

Apache

 

 

特別說明:

GPL協議是絕對意義上的開源協議,一經使用,新的代碼既被感染,同樣需要遵守GPL協議。但是目前國內的大部分企業是這樣躲避開源風險的,他們把自己的設備作爲產品發佈,只有硬件設備是用於商業用途的,至於操作系統以及系統以上的應用程序,並不是作爲商用用途的,所以不必開源,相當於利用了協議的灰色地帶;

LGPL協議是GPL協議的低配版本,通常一些開源軟件使用LGPL協議,與GPL的不同是,如果僅僅是類庫引用,用作商業用途,則不需開源。但是修改源碼則必須開源。

Apache與BSD協議的初衷是在保持對原作者尊重的前提下進行開源,兩者的區別是,Apache對於後續軟件具有延續性,而BSD則不具有延續性。

對軟件的保護效果:BSD > Apache > LGPL > GPL,而協議的傳染能力則剛好相反。

andriod雖然基於Linux內核,但是剔除了Linux中的一些GPL協議的內容(包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等),使用自己的軟件包取而代之,進而執行Apache開源授權許可

Android 是運行於Linux kernel之上,但並不是GNU/Linux。因爲在一般GNU/Linux 裏支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。

Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 爲了達到商業應用,必須移除被GNU GPL授權證所約束的部份,例如Android將驅動程序移到 Userspace,使得Linux driver 與 Linux kernel徹底分開。

Bionic/Libc/Kernel/ 並非標準的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是爲了保留常數、數據結構與宏。

Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網絡堆棧(Network Stack),驅動程序模型(Driver Model)等。下載Android源碼之前,先要安裝其構建工具 Repo來初始化源碼。Repo 是 Android 用來輔助Git工作的一個工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章