终于理解了什么是LGPL

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

转载来源:点击打开链接

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就是商业用的时候要购买,个人用就不必购买,原来搞错了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/220146.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午9:08
下一篇 2026年3月17日 下午9:08


相关推荐

  • Stack栈的三种含义

    Stack栈的三种含义

    2021年12月7日
    65
  • CPU指令集——AVX2

    CPU指令集——AVX21.查看CPU所支持的指令集借助CPU-Z工具,可查看当前CPU所支持的指令集:由此可知,Inteli7-7700CPU支持AVX2指令集,但是不支持AVX-512指令集。根据https://medium.com/@hdevalence/even-faster-edwards-curves-with-ifma-8b1e576a00e9可知,其基于AVX512-IFMA的实现是AVX2速…

    2022年5月7日
    1.3K
  • Could not get a resource from the pool 问题解决

    Could not get a resource from the pool 问题解决Couldnotgetaresourcefromthepool问题解决今天测试项目的时候,界面提示Couldnotgetaresourcefromthepool报错信息。登录后台,查询对应的java报错日志报错信息:redis.clients.jedis.exceptions.JedisConnectionException:Couldnotgetaresourcefromthepool到这里可以确定的是redis连接出了问题。..

    2025年7月29日
    10
  • 京东云JoyBuilder部署Claude教程,Claude Code安装全流程

    京东云JoyBuilder部署Claude教程,Claude Code安装全流程

    2026年3月16日
    2
  • JNZ是什么指令_pushf指令

    JNZ是什么指令_pushf指令书中127页有这么一段,movdx,0x1f7.waits:inal,dxandal,0x88cmpal,0x08jnz.waits最后一句的jnz完全可以用jne代替,那jnz/jne,jz/je区别到底是什么呢?刚想到这个问题时候我有点懵,明明都是由ZF标志位决定的啊,有啥不一样啊QAQjnz指令,if(ZF!=0)则跳转,在

    2025年8月8日
    5
  • 计算机网络重点回顾

    计算机网络一.计算机网络概述计算机网络的概念:(*)1.计算机网络的定义:​ 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路链接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。2.计算机网络的组成:终端系统/资源子网:提供共享的软件资源和硬件资源通信子网:提供信息交换的网络结点和通信线路。3.计算机网络的类型:按照拓朴分类:星型结构树形结构总线型结构环形结构网状结构按照范围分

    2022年4月9日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号