首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >当前开源协议概述及分类对比

当前开源协议概述及分类对比

作者头像
用户2423478
发布2025-10-31 18:59:17
发布2025-10-31 18:59:17
2990
举报
文章被收录于专栏:具身小站具身小站

开源协议是管理软件源代码使用、修改和分发规则的法律框架,旨在平衡开发者权利与社区自由。根据限制程度,主流协议可分为宽松型、强开源型(Copyleft型) 和混合型。

协议

闭源商用

专利保护

修改后开源

典型项目

MIT

✅ 允许

❌ 无

❌ 无需

Node.js

Apache 2.0

✅ 允许

✅ 明确授权

❌ 无需

Kubernetes

GPLv3

❌ 禁止

✅ 有

强制全开源

Linux

LGPL

✅ 动态链接

✅ 有

⚠️修改部分开源

FFmpeg

BSD-3

✅ 允许

❌ 无

❌ 无需

FreeBSD

AGPL

❌ 禁止

✅ 有

强制全开源

MongoDB

AGPLv3

❌ 禁止

✅ 有

强制全开源

Elasticsearch, Edx

SSPL

❌ 禁止

✅ 有

服务端开源

MongoDB, Redis

BSL

⚠️ 限制期禁止

✅ 有

❌ 无需

CockroachDB

木兰协议

✅ 允许

✅ 有

强制全开源

鸿蒙OS, OpenEuler

CC0

✅ 允许

❌ 无

❌ 无需

SQLite, NFT艺术品

Sustainable

❌ 禁止

❌ 无

⚠️ 需要(但有企业规模限制)

n8n框架

MPL 2.0

✅ 允许

❌ 无

修改文件开源

Firefox, Thunderbird

1. 宽松型协议(Permissive Licenses)

此类协议限制最少,允许闭源商用,仅要求保留版权声明,适合商业集成。

MIT协议

  • 核心规则:保留原始版权声明即可自由使用、修改、闭源分发,无其他限制。
  • 优势:极简灵活,商业友好(如React、Node.js)。
  • 局限:无专利保护条款,衍生作品可能闭源。

Blue Oak Model License

  • 专利保护增强版MIT
  • 明确专利授权,且诉讼时自动终止专利权利。
  • 条款极简(仅200词),规避MIT的专利漏洞

Apache 2.0

  • 核心规则:在MIT基础上增加专利授权和修改标注(需在NOTICE文件声明变更)。
  • 优势:规避专利诉讼风险(如Kubernetes、Android)。
  • 局限:与GPLv3不兼容,混用需技术隔离。

BSD协议

  • 核心规则:分2-Clause(仅保留声明)和3-Clause(额外禁止用原作者名义推广)。 -适用场景:嵌入式系统(如FreeBSD),需单独标注来源。

BSD变体

  • 0-Clause BSD:完全无限制,等同于Unlicense,但保留协议名称。
  • 4-Clause BSD:已淘汰,要求衍生作品广告中提及原作者,与GPL不兼容。

CC0 / Unlicense

  • 完全放弃版权:
  • 将作品置于公共领域(Public Domain),允许任意使用且无需署名。
  • 与MIT最大区别:无任何保留条款。
  • 应用场景:SQLite数据库、NFT数字艺术项目,追求最大自由度。
  • 风险:代码可能被闭源商用且无追溯力,原作者丧失控制权。

2. 强制开源型(Copyleft型协议)

要求衍生作品必须开源,保护代码自由,限制商业闭源。

GPL(GNU通用公共许可证)

  • 核心规则:强传染性——任何衍生作品(含静态链接)必须开源(如Linux内核)。
  • GPLv2:不防硬件锁定(如路由器固件限制修改)。
  • GPLv3:禁止Tivoization(硬件封锁),强化专利保护。
  • 风险:商业软件集成需开源全部代码,否则面临法律纠纷(如2025年苏州公司判赔案例)。

AGPL(Affero GPL)

  • 扩展规则:网络服务(SaaS)视为“分发”,强制开源云服务代码。
  • 适用场景:防止企业滥用开源代码盈利却不回馈(如企业级中间件)。

Sustainable Use License(n8n协议)

  • 禁止商业化:仅允许内部使用,不得提供商业服务或支持。
  • 本质是“公平代码”(Fair-Code),非OSI认证的开源协议。
  • 设计逻辑:保护核心产品(如n8n企业版)免受云厂商低价竞争

3. 混合型协议(Partial Copyleft)

针对库文件设计,允许部分闭源,平衡商业与开源需求。

LGPL(GNU宽通用公共许可证)

  • 核心规则:动态链接库可被闭源软件调用(如FFmpeg、GTK),修改库本身则必须开源。
  • 静态链接要求:需提供目标文件(.o)供用户替换。

MPL 2.0(Mozilla公共许可证)

  • 文件级传染:仅要求修改后的文件开源,其他代码可闭源
  • 允许与专有代码混合分发(如Firefox浏览器)。
  • 适用场景:商业产品中嵌入开源组件(如浏览器引擎),企业可闭源主产品,仅开源组件层(如SDK)。

SSPL(Server Side Public License)

  • 核心规则:要求云服务提供商若托管该开源软件,必须公开其服务端所有修改代码(包括管理工具、监控系统等)。
  • 衍生作品若以服务形式提供,需遵循相同条款。
  • 设计初衷:防止AWS等云厂商“白嫖”开源代码盈利却不回馈(如Redis、MongoDB采用)。
  • 局限:严格性导致与OSI(开源倡议组织)认证冲突,社区争议较大。

BSL(Business Source License)

  • 核心规则:初始版本限制商用(如禁止SaaS服务),到期后自动转为宽松协议(如Apache 2.0)(先闭源后开源)。
  • 允许免费试用和修改,但商业规模化需购买授权。
  • 典型应用:CockroachDB(分布式数据库)通过BSL保护早期商业利益,4年后代码开源。
  • 优势:兼顾项目盈利与长期开源愿景,避免云厂商直接竞争。

木兰协议(Mulan PSL)

  • 中国本土创新,中国首个自主知识产权的开源许可证,有MulanPSL-1和MulanPSL-2两个版本
  • MulanPSL-2已获OSI认证,是国际认可的开源许可证
  • 双语法律效力:中英文版本,中文优先解释,降低语言歧义风险。
  • 专利反诉讼:贡献者若发起专利诉讼,则自动终止授权(类似Apache但更严格)。
  • 应用场景:鸿蒙OS组件、OpenEuler国产操作系统,支持与国际协议(GPL/MIT)兼容。

4. 选型决策

按目标场景选择

  • 最大化商业自由度:选 MIT / BSD(无专利需求)或 Apache 2.0(需专利保护)。
  • 保障开源生态:选 GPL(强约束)或 LGPL(库开发)。
  • 云服务项目:选 AGPL(防SaaS滥用)或 SSPL(强制服务端开源,但需评估社区兼容性)。
  • 最大化传播自由度:放弃版权 选CC0/Unlicense,保留最小限制 选0-Clause BSD
  • 中国项目合规:木兰协议(双语+专利防护)。
  • 企业混合开发:部分闭源需求 选MPL 2.0(文件级隔离)

避坑实践

  • 声明规范:每个文件头部添加版权声明(如 Copyright © 2025 [作者])。
  • 依赖检查:使用工具(如 FOSSology)扫描第三方库协议兼容性(例:GPL项目禁用MIT代码)。
  • 隔离策略:Apache 2.0与GPLv3混用时,通过微服务架构隔离代码。
  • 协议分层化:如Dify的“修改版Apache 2.0”限制多租户,反映开源策略定制化。
  • 道德条款兴起:Hippocratic License禁止用于军事/监控,伦理约束成新焦点
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-08-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 具身小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 宽松型协议(Permissive Licenses)
  • 2. 强制开源型(Copyleft型协议)
  • 3. 混合型协议(Partial Copyleft)
  • 4. 选型决策
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档