转载来源:点击打开链接

GPL

我 们很熟悉的Linux就是采用了GPL。GPL协议和BSD, Apache Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代 码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种linux,包括商业公司的linux和linux上各种各样的由个人,组织,以及商 业软件公司开发的免费软件了。

GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL协议的产品作为一个单独的产品使用没有任何问题, 还可以享受免费的优势。

由于GPL严格要求使用了GPL类库的软件产品必须使用GPL协议,对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。

其它细节如再发布的时候需要伴随GPL协议等和BSD/Apache等类似。

LGPL

LGPL 是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并 发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因 此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

===========================================

读书笔记:采用LGPL的代码,一般情况下它本身就是一个第三方库(别忘了LGPL最早的名字就是Library GPL),这时候开发人员仅仅用到了它的功能,而没有对库本身进行任何修改,那么开发人员也不必公布自己的商业源代码。但是如果你修改了这个库的代码,那么对不起,你修改的代码必须全部开源,并且协议也是LGPL,但除了库源码之外的商业代码,仍不必公布。我是这样理解的,呵呵。以前一直以为LGPL就是商业用的时候要购买,个人用就不必购买,原来搞错了。

终于理解了什么是LGPL相关推荐

  1. 终于理解,飞行姿态控制中,为什么要用旋转矩阵的方式不停地转换来获取姿态误差

    终于理解,飞行姿态控制中,为什么要用旋转矩阵的方式不停地转换来获取姿态误差 最近在学习飞行姿态控制的原理部分,看了很多博客,一直没有明白控制飞行姿态时为什么要用旋转矩阵相乘的方式来求姿态误差. 现在对 ...

  2. 终于理解了函数式技术

    今天在随便看一些文章及思考的时候,突然就悟到了,这种感觉就象当年某一天领悟了面向对象.哈哈,我终于打通了任督二脉. 顺便看下,园龄刚好10年了. 当年理解面向对象后随手写了这篇: http://www ...

  3. C语言怎么编译成机器语言的,终于理解了编译是怎么回事!从C语言到机器语言的升华过程!...

    看完这篇文章以后,终于明白了编译到底怎么回事.数据库 1 对于同一个语句,有以下三种:高级语言.低级语言.机器语言的表示编程 C语言:windows a=b+1;网络 汇编语言:数据结构 mov -0 ...

  4. 看了无数文章,今天终于理解这些性能指标了

    如果要问性能测试里那种技术最难,相信很多人都会说出"性能分析"这四个字.确实是,性能测试的执行是比较简单的,难的是执行完成后,如何分析这些数据.如何从一大堆数据里分析哪些数据是优秀 ...

  5. 中国首条3D刷脸地铁开通,终于理解数加加众包为啥采集人脸了

    4月1日,国内首条采用3D人脸识别闸机的地铁线路­--济南地铁1号线开启商业运营.该款3D人脸识别闸机搭载3D传感技术,通过3D人脸识别验证乘客身份,乘客只需刷脸即可进出地铁站.乘客在济南地铁App上 ...

  6. 我我我我终于理解闭包了,哈哈哈哈(仰天长啸)(JavaScript闭包理解)

    想要理解闭包.首先得了解JavaScript中的三个东西. 1,函数内部可以访问的范围. 就是说,函数内部能访问,自身内部以及自身外层的变量.(这个很好理解,大部分语言都是如此) 如: var a = ...

  7. 这次终于理解了PCA主成分分析(附代码)

    在降维过程中,我们会减少特征的数量,这意味着删除数据,数据量变少则表示模型可以获取的信息会变少,模型的表现可能会因此受影响.同时,在高维数据中,必然有一些特征是不带有有效的信息的(比如噪音),或者有一 ...

  8. 贝叶斯网络python代码_贝叶斯网络,看完这篇我终于理解了(附代码)!

    1. 对概率图模型的理解 概率图模型是用图来表示变量概率依赖关系的理论,结合概率论与图论的知识,利用图来表示与模型有关的变量的联合概率分布.由图灵奖获得者Pearl开发出来. 如果用一个词来形容概率图 ...

  9. FFT算法再学以及终于理解

    前言 人生如逆旅,我亦是行人. 一.FFT FFT(Fast Fourier Transformation),中文名快速傅里叶变换,用来 加速多项式乘法 ,就是用来降低算法的时间复杂度的,将时间复杂度 ...

最新文章

  1. 碉堡的小程序:用 Python 制作演示迷宫算法的 gif 动画
  2. Normalization笔记
  3. 读QT5.7源码(三)Q_OBJECT 和QMetaObject
  4. 条件随机场(conditional random fields) 及代码实现
  5. 〔译〕TypeScript 2.0 正式发布
  6. Python socket Ftp get put 简单实现
  7. css3制作炫酷导航栏效果 转
  8. 2015前端生态发展回顾(转)
  9. Java工作笔记-Spring boot中配置文件加密(Jasypt的使用)
  10. python性能测试台_性能测试平台效率优化的一次经验(python版)
  11. 最简单的 RabbitMQ 监控方法 - 每天5分钟玩转 OpenStack(158)
  12. SQL Server中的sysobjects” 是什么意思
  13. 潘多拉 搭建 php服务器,OpenWrt/LEDE/潘多拉固件4G网卡上网之【HiLink模式上网教程】...
  14. 创强教师办公用计算机配备要求,信息技术如何开展“创强”.doc
  15. DevComponents.DotNetBar2 美化包使用以及验证教程
  16. 死磕 Framework准没错,大把的高薪岗位等着你~
  17. WIN7电脑如何共享WiFi
  18. 基于Raft共识协议的KV数据库
  19. 宫崎骏动画风格 美日动漫差异
  20. Spring整合JMS融入工程中-----思路

热门文章

  1. Android 中Preferences的使用!
  2. react 使用注意:
  3. centos 7 显示已连接却无法上网
  4. java创建access数据库_使用Java创建Access数据库文件(.mdb或.accdb)
  5. 知识普及:查询手机IMEI码
  6. 多个方面比较电路交换、报文交换和分组交换的主要优缺点
  7. 求助一个关于顶帖机的思路
  8. Windows反调试技术全攻略
  9. 视频插帧(Video Frame interpolation)论文及源码
  10. 云服务器 exe文件打不开,详细教您exe文件打不开的解决方法