开源协议是规范开源软件使用、修改、分发的法律条款,核心差异体现在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软件引用)。
- 弱copyleft,主要用于库(Libraries):
-
代表软件:
- 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更完善,核心差异:
- 专利授权:贡献者明确授予用户使用其专利的权利(避免后续专利纠纷)。
- 若用户起诉贡献者专利侵权,专利授权自动终止。
- 修改过的文件需标记“修改”,需保留版权和许可声明。
- 允许闭源商用,无需开源衍生作品。
- 比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。
623

被折叠的 条评论
为什么被折叠?



