GNU是“GNU is Not Unix”的递归缩写。GNU 包含3个协议条款:
   GPL:GNU通用公共许可证(GNU General Public License)
   LGPL:GNU较宽松公共许可证 (GNU Lesser General Public License) ,旧称 GNU Library General Public License (GNU 库通用公共许可证);
    GFDL :GNU自由文档许可证(GNU Free Documentation License )的缩写形式。

GPL(General Public License)和LGPL( Lesser General Public License)是GNU的两种License。越来越多的自由软件(Free Software)使用GPL作为其授权声明,如果对GPL一点都不了解,有可能在使用自由软件时违反了GPL的授权。如果是个人或不正规的公司倒也无所谓,但如果是有规模的公司,恐怕会有被起诉的风险。这里指的自由,并不是价格免费,这和价格无关而是使用软件对所有的用户来说是自由的。GPL通过如下途径实现这一目标:

1.它要求软件以源代码的形式发布,并规定任何用户能够以源代码的形式将软件复制或发布给别的用户。
2.如果用户的软件使用了受 GPL 保护的任何软件的一部分,那么该软件就继承了 GPL 软件,并因此而成为 GPL 软件,也就是说必须随应用程序一起发布源代码。
3.GPL 并不排斥对自由软件进行商业性质的包装和发行,也不限制在自由软件的基础上打包发行其他非自由软件。
GPL协议的主要内容是只要在一个软件中使用(”使用”指类库引用,修改后的代码或者衍生代码)GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。这就是所谓的”传染性”。GPL要求调用它的库的代码也得GPL,全部开放,并且一同发布,不能直接连接(源代码形式)。对于使用GPL协议的开源代码,商业软件或者对代码有保密要求的部门就不适合集成/采用作为类库和二次开发的基础。
所以后来GNU推出了LGPL许可。LGPL 是GPL的一个为主要为类库使用设计的开源协议,LGPL 允许商业软件通过类库引用(link)方式使用LGPL类库,而不需要开源商业软件的源代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议(注解:采用LGPL的代码,一般情况就是一个第三方库,如果开发人员仅用了它的功能,而没有对库本身进行任何修改,那么开发人员也不必公布自己的商业源代码。但是开发人员修改了这个库的源代码,那么修改的这部分库的代码必须开源,并且遵循LGPL协议)。因 此LGPL协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
在GPL与LGPL许可证保护下发布源代码的结果很相似,对旧代码所做的任何修改对于想知道这些代码的人必须是公开的,唯一真正的不同之处在于私人版权代码是否可以与开放源代码相互连接,LGPL允许实体连接私人代码到开放源代码,并可以在任何形式下发布这些合成的二进制代码。只要这些代码是动态连接的就没有限制。(使用动态链接时,即使是程序在运行中调用函数库中的函数时,应用程序本身和函数库也是不同的实体)
GPL/LGPL协议的最终目都是保护开发者的知识产权,避免他人直接利用开源的代码开发类似的产品。

认识GPL/LGPL相关推荐

  1. 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)

    Open Source Initiative组织: https://opensource.org/licenses/alphabetical 现今存在的开源协议很多,而经过Open Source In ...

  2. 重要开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理

    当Adobe.Microsoft.Sun等一系列巨头开始表现出对"开源"的青睐时,"开源"的时代即将到来! 最初来自:sinoprise.com/read.ph ...

  3. 2006“IBM杯”中国高校SOA应用大赛禁止使用任何版本的GPL/LGPL license的开源软件

    看着手头的这个 Word 文档,心情沉重. 这个世界怎么了? What's wrong with Free Software? IBM didn't support GPL. Should the c ...

  4. 五种开源协议(GPL,LGPL,BSD,MIT,Apache)

    什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还 ...

  5. GPL LGPL Apache2.0 BSD 开源协议扫盲帖

    BSD (Berkeley Software Distribution,伯克利软件套件)是Unix的衍生系统,在1977至1995年间由加州大学伯克利分校开发和发布的.    历史上, BSD曾经被认 ...

  6. 开源协议介绍(GPL,LGPL,BSD,MIT,Apache)

    什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还 ...

  7. Qt 许可证(GPL/LGPL/商业协议)

    引文一 : Qt 有两个许可证:LGPL 和商业协议.这两个协议在现在的 Qt 版本中的代码是完全一致的(潜在含义是,Qt 的早期版本,商业版的 Qt 通常包含有一些开源版本所没有的库,比如 QtSi ...

  8. 开源协议比较(BSD,Apache,GPL,LGPL,AGPL,MIT)

    现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有 80种:https://opensource.org/licenses/alphabetical ...

  9. GPL/LGPL理解

    转载地址:https://www.cnblogs.com/findumars/p/3556883.html 感谢前辈总结分享! GPL 我 们很熟悉的Linux就是采用了GPL.GPL协议和BSD, ...

最新文章

  1. scrapy proxy and user_agent
  2. 08-Isolation using virtualization in the Secure World_Whitepaper
  3. SAP成本收集器两则
  4. Unity3D两种方式播放视频
  5. python 银行工作_Python:银行系统实战(一)
  6. 5分钟了解阿里时序时空数据库
  7. 【Spring】Bean instantiation via constructor failed nested exception Constructor threw exception
  8. 利用c语言面向对象编程,用C语言程序实现面向对象编程
  9. All xxx functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
  10. 深入浅出VMware——虚拟机暂停后生成的文件
  11. 内推| 阿里全球化分析师战队集结令
  12. php中的钩子理解及应用
  13. ssm怎么自动排列序号6位数_小学数学1~6年级知识薄弱点应对方法汇总,建议收藏!...
  14. 速达软件启示录——记中国一代ERP性价比之王的没落
  15. 多项logistic回归系数解释_Logistic回归结果的回归系数和OR值解读
  16. qgridlayout 滚动时固定第一行_滚动轴承组合设计应考虑的问题
  17. 远程打印服务器配置,打印服务器的配置与管理(1) 网络打印机的安装与部署...
  18. 计算机软件著作权登记证书
  19. unity给物体更改颜色
  20. 镭速传输:TB级大文件传输,一招教你搞定

热门文章

  1. jetson nano 环境配置(pytorch+ros+rartographer)
  2. Adaptive AUTOSAR (AP) 平台设计(9)——Persistency
  3. 《STM32从零开始学习历程》——DMA直接存储区访问实验例程
  4. win7装xp双系统_win7配置最低要求是什么
  5. IE浏览器下禁止使用迅雷下载
  6. Mindjet MindManager abnormal program termination错误
  7. c#dataGridView 知识
  8. 北斗/GPS卫星时钟系统(北斗/GPS卫星授时系统-北斗/GPS卫星校时系统)
  9. Go的Slice和数组
  10. 高二物竞转北大计算机华师,华师一附中最牛班:30多人考上清华、北大,4人获国际奥赛金牌!...