Android是如何規避GPL傳染性的

1、首先得了解android體系結構 android

從下到上介紹上圖 less

Linux Kernel: 徹底開源,GPLv2協議 ionic

Libraryies: 含少許開源庫 ide

Android Runtime: android 優化的JAVA虛擬機,更適合嵌入式系統。 優化

Application Framework和Application都是JAVA程序。 網站

2、android如何規避GPLv2的傳染性 this


  • 首先,最關鍵點是Linus Torvalds在Linux內核版權最前的一段話,保證了Linux內核GPLv2不傳染


Linux內核的版權是GPLv2,可是Linus Torvalds在Linux內核的版權文件COPYING中最前面增長了下面一段話,保證了Linux內核的商業用途不被GPLv2傳染。 google



   NOTE! This copyright does *not* cover user programs that use kernel
 services by normal system calls - this is merely considered normal use
 of the kernel, and does *not* fall under the heading of "derived work".
 Also note that the GPL below is copyrighted by the Free Software
 Foundation, but the instance of code that it refers to (the Linux
 kernel) is copyrighted by me and others who actually wrote it.


 Also note that the only valid version of the GPL as far as the kernel
 is concerned is _this_ particular version of the license (ie v2, not
 v2.2 or v3.x or whatever), unless explicitly otherwise stated.


Linus Torvalds


----------------------------------------


   GNU GENERAL PUBLIC LICENSE
      Version 2, June 1991 spa

注意:這個版權不覆蓋經過正常系統調用來使用Linux內核服務的用戶程序。 code

有了這一點Linux內核的GPLv2不會傳染內核之上。

以上版權文件能夠到Linux Kernel的網站上下載: https://www.kernel.org/


  • 其次,android把GNU/Linux中的系統庫glibc換爲libc了。


通常的GNU/Linux上圖中的libc位置是glibc。

glibc是GNU的,屬於GPL受權,有傳染性。

libc是google 改寫優化的Free BSD Bionic庫,屬於BSD協議。能夠選擇性開源,也不具傳染性。

經過以上兩點,android很好的規避了GNU/Linux GPL協議的傳染性。

相關文章
相關標籤/搜索