开源许可证(OSI 认证的开源协议)一般分为宽松型(Permissive)、弱 Copyleft、强 Copyleft三大类;另外还有一些非 OSI 的 “源可用协议”(不是严格意义开源)以及国内开源协议。
一、宽松型协议(Permissive,商业友好,无传染性)
特点:可以修改、商用、闭源分发;只需要保留版权声明,不需要把你自己新增代码开源。
MIT License 最流行、最简单。仅保留版权 + 免责,无专利条款。Vue、React、Node.js。
Apache License 2.0 企业首选,自带专利授权条款,贡献者不能拿专利起诉使用者;修改代码需要标注变更记录。K8s、Android、Hadoop。
BSD(2-Clause / 3-Clause) 和 MIT 很接近;BSD-3 额外禁止拿原作者名字背书产品。FreeBSD、Django。
木兰宽松许可证 MulanPSL-2.0 OSI 认证,国内开源协议,中英文双语,专利条款类似 Apache。openEuler、鸿蒙相关组件。
二、弱 Copyleft(部分传染,只约束修改的那部分)
特点:如果你修改了这个开源库本身,修改部分必须开源;单纯动态链接调用它,你的上层代码可以闭源商用。
LGPL(Lesser GPL) GNU 轻量 GPL。常用于类库。动态链接:你的闭源软件可以调用 LGPL 库;修改 LGPL 库源码,则修改部分必须开源。FFmpeg。
MPL 2.0(Mozilla Public License) 只要求 MPL 文件本身开源;你新增的独立文件可以闭源。Firefox。
EPL 2.0(Eclipse Public License) Eclipse 生态,弱 Copyleft,专利条款。Eclipse。

三、强 Copyleft(强传染性,完整衍生作品必须开源)
特点:一旦整合 / 静态链接到项目,整个衍生作品必须使用相同协议开源。
GPLv2 / GPLv3 GPLv2:Linux 内核。 GPLv3:增加专利反制、防硬件锁死(Tivoization)。 重点:静态链接、把 GPL 代码打包进你的软件,整体强制开源。
AGPLv3(Affero GPL) GPL 的网络增强版:哪怕你只是把软件部署成 SaaS 对外提供网络服务,也要向使用者提供源代码。GitLab。
四、源可用协议(不是 OSI 标准开源协议,常被混淆)
不属于严格开源,限制商用场景:
SSPL:MongoDB 旧协议,服务端使用限制;
BSL(Business Source License):CockroachDB,一段时间后自动转为开源协议;
五、其他常用相关许可(代码一般不用)
CC0:放弃版权,公有领域;适合文档、图片、数据集,不推荐程序代码。
快速对比一句话
✅ MIT:随便用,留版权声明就行
✅ Apache2:MIT + 专利保护,改代码要写变更
⚠️ LGPL:库可以闭源调用,但改库本身要开源
❗ GPL:静态链接打包,整个项目必须开源
❗ AGPL:SaaS 线上使用也要开源
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢