博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android是如何规避GPL传染性的
阅读量:6258 次
发布时间:2019-06-22

本文共 1382 字,大约阅读时间需要 4 分钟。

hot3.png

一、首先得了解android体系结构

从下到上介绍上图

Linux Kernel: 完全开源,GPLv2协议

Libraryies: 含少量开源库

Android Runtime: android 优化的JAVA虚拟机,更适合嵌入式系统。

Application Framework和Application都是JAVA程序。

二、android如何规避GPLv2的传染性

  • 首先,最关键点是Linus Torvalds在Linux内核版权最前的一段话,保证了Linux内核GPLv2不传染

Linux内核的版权是GPLv2,但是Linus Torvalds在Linux内核的版权文件COPYING中最前面增加了下面一段话,保证了Linux内核的商业用途不被GPLv2传染。

   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

注意:这个版权不覆盖通过正常系统调用来使用Linux内核服务的用户程序。

有了这一点Linux内核的GPLv2不会传染内核之上。

以上版权文件可以到Linux Kernel的网站上下载: 

  • 其次,android把GNU/Linux中的系统库glibc换为libc了。

一般的GNU/Linux上图中的libc位置是glibc。

glibc是GNU的,属于GPL授权,有传染性。

libc是google 改写优化的Free BSD Bionic库,属于BSD协议。可以选择性开源,也不具传染性。

通过以上两点,android很好的规避了GNU/Linux GPL协议的传染性。

转载于:https://my.oschina.net/blueprint/blog/142244

你可能感兴趣的文章
hdoj-5099-Comparison of Android versions
查看>>
小波变换简单介绍(2)
查看>>
Dubbo -- 系统学习 笔记 -- 示例 -- 线程模型
查看>>
Dubbo -- 系统学习 笔记 -- 示例 -- 多注册中心
查看>>
使用C++实现学生管理系统
查看>>
BroadcastReceiver类
查看>>
大杂烩 -- 查找单向链表倒数第m个元素
查看>>
SQL笔记 --- 数据库设计步骤(转)
查看>>
cocos2d-iphone 动作
查看>>
[Preact] Integrate react-router with Preact
查看>>
函数指针的说明
查看>>
Python操作redis学习系列之(集合)set,redis set详解 (六)
查看>>
Linux时间子系统之二:表示时间的单位和结构
查看>>
leetcode 221: Maximal Square
查看>>
Oracle更新时间字段
查看>>
Android 四大组件学习之ContentProvider二
查看>>
使用jcaptcha插件生成验证码
查看>>
centos6.5 (linux) 禁用模块 IPV6模块的方法
查看>>
用webpack2.0构建vue2.0超详细精简版
查看>>
从分类,排序,top-k多个方面对推荐算法稳定性的评价
查看>>