开源协议怎么选?一文读懂开源协议

开源协议是规范开源软件使用、修改、分发的法律条款,核心差异体现在copyleft强度(是否要求衍生作品开源)、商业使用限制、专利授权等方面。以下是最常用的开源协议及其特点、代表软件:

一、强Copyleft协议(要求衍生作品必须开源)

1. GPL(GNU General Public License,GNU通用公共许可证)
  • 特点

    • 强copyleft:任何基于GPL软件的修改、衍生作品(包括链接该软件的应用),必须以相同GPL协议开源,且需公开完整源代码。
    • 允许商业使用、分发,但不得闭源或改用其他协议。
    • 版本差异:GPLv3新增对数字版权管理(DRM)的限制,以及更严格的专利授权条款(禁止专利歧视)。
  • 代表软件

    • Linux内核(GPLv2)、GCC编译器(GPLv3)、VLC播放器(GPLv2)、Git(GPLv2)。
2. AGPL(GNU Affero General Public License,GNU Affero通用公共许可证)
  • 特点

    • 基于GPL的扩展,针对网络服务场景:如果通过网络提供基于AGPL软件的服务(如SaaS),必须公开服务器端修改后的源代码(GPL不强制网络服务开源)。
    • 其他规则与GPL一致(强copyleft)。
  • 代表软件

    • MongoDB早期版本(后改用Server Side Public License)、Matrix协议的Synapse服务器(AGPLv3)。

二、弱Copyleft协议(仅限制核心修改,允许衍生作品闭源)

1. LGPL(GNU Lesser General Public License,GNU宽通用公共许可证)
  • 特点

    • 弱copyleft,主要用于库(Libraries)
      • 若仅“使用”该库(不修改库本身),应用程序可闭源(如用LGPL库开发的商业软件无需开源)。
      • 若“修改库本身”,则修改后的库必须以LGPL开源,且需提供修改记录。
    • 允许商业使用,兼容GPL(LGPL库可被GPL软件引用)。
  • 代表软件

    • GNU C库(glibc,LGPLv2.1)、Qt框架(部分版本,LGPLv3)、FFmpeg(LGPLv2.1可选)。
2. MPL(Mozilla Public License,Mozilla公共许可证)
  • 特点

    • 中等强度copyleft:仅要求修改过的原文件开源,新文件可闭源(即“文件级copyleft”)。
    • 允许商业使用,需保留版权声明,源代码需公开(可通过网络提供下载)。
    • 专利保护:贡献者授予用户使用其专利的权利,若用户起诉贡献者专利侵权,授权自动终止。
  • 代表软件

    • Firefox浏览器(MPLv2)、Thunderbird邮件客户端(MPLv2)、Puppet(配置管理工具,MPLv2)。

三、宽松型协议(几乎无copyleft,允许闭源商用)

1. MIT协议(Massachusetts Institute of Technology License)
  • 特点

    • 最宽松的协议之一:允许自由使用、修改、分发(商业/非商业均可),无需开源修改后的代码
    • 唯一要求:保留原版权声明和许可文本(无需单独标注修改)。
    • 无专利授权条款,不限制商标使用。
  • 代表软件

    • React(Facebook,前端框架)、Node.js(JavaScript运行时)、Ruby on Rails(Web框架)、JQuery(JavaScript库)。
2. Apache协议(Apache License)
  • 特点

    • 比MIT更完善,核心差异:
      • 专利授权:贡献者明确授予用户使用其专利的权利(避免后续专利纠纷)。
      • 若用户起诉贡献者专利侵权,专利授权自动终止。
      • 修改过的文件需标记“修改”,需保留版权和许可声明。
    • 允许闭源商用,无需开源衍生作品。
  • 代表软件

    • Apache HTTP Server(Web服务器)、Apache Hadoop(大数据框架)、Android(系统核心组件,Apache 2.0)、TensorFlow(早期版本)。
3. BSD协议(Berkeley Software Distribution License)
  • 特点

    • 分多个版本,最常用的是:
      • 2-clause BSD:要求保留版权和许可声明,允许闭源商用,无其他限制。
      • 3-clause BSD:在2-clause基础上增加“禁止用原作者名称做宣传”(如“本产品由XXX推荐”)。
    • 无专利授权条款,宽松度接近MIT。
  • 代表软件

    • FreeBSD/NetBSD/OpenBSD(操作系统)、早期MySQL(后改用GPL)、Redis(早期用3-clause BSD,后修改)。

协议核心差异对比表

协议Copyleft强度衍生作品是否需开源商业使用允许专利保护条款
GPL是(完全开源)弱(GPLv3增强)
LGPL仅修改的库需开源
MPL中等仅修改的原文件需开源
MIT
Apache
BSD(2-clause)

选择协议时,需根据需求权衡:若希望代码被自由共享且衍生作品保持开源,选GPL/LGPL;若允许商业闭源使用,选MIT/Apache/BSD;若需平衡开源与闭源(仅修改文件开源),选MPL。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值