编程进阶网 编程进阶网
首页
  • 在线工具
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 加解密
  • 时间日期
  • 网络工具
  • 颜色设计
  • 二维码
  • 开发实用
  • 计算机的原理
  • 操作系统原理
  • 网络协议原理
  • 数据库的原理
  • 序卷导读
  • 数据本质
  • 运行模型
  • 并发设计
  • 内存真相
  • 交互系统
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 技能之旅
  • 体系建设
  • 代码品质
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 性能优化
  • 数据结构导论
  • 线性结构详解
  • 树哈希结构论
  • 容器设计实战
  • 经典算法思想
  • 工程案例剖析
  • 算法题库精练
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++编程技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript案例
  • JavaScript高级
  • Kotlin精通
  • Android库解读
  • Android专栏
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • 毛选解读
  • 自我精进
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接

杨充

专注编程 · 终身学习者
首页
  • 在线工具
  • JSON工具
  • 文本工具
  • 图片处理
  • 文档转化
  • 代码压缩
  • 加解密
  • 时间日期
  • 网络工具
  • 颜色设计
  • 二维码
  • 开发实用
  • 计算机的原理
  • 操作系统原理
  • 网络协议原理
  • 数据库的原理
  • 序卷导读
  • 数据本质
  • 运行模型
  • 并发设计
  • 内存真相
  • 交互系统
  • 面向对象
  • 设计原则
  • 设计模式
  • 系统架构
  • 技能之旅
  • 体系建设
  • 代码品质
  • 方案设计
  • 稳定可靠
  • 工程运维
  • 性能优化
  • 数据结构导论
  • 线性结构详解
  • 树哈希结构论
  • 容器设计实战
  • 经典算法思想
  • 工程案例剖析
  • 算法题库精练
  • C语言入门
  • C综合案例
  • C专栏博客
  • C标准集库
  • C++入门教程
  • C++综合案例
  • C++专栏博客
  • C++编程技巧
  • Java入门教程
  • Java综合案例
  • Java专栏博客
  • Go入门教程
  • Go综合案例
  • Go专栏博客
  • Go开发技巧
  • JavaScript入门
  • JavaScript案例
  • JavaScript高级
  • Kotlin精通
  • Android库解读
  • Android专栏
  • iOS ObjC入门
  • iOS Swift入门
  • iOS入门精通
  • Web之Html手册
  • Web之TypeScript
  • Web之Vue高级进阶
  • Linux之QML入门
  • Linux之QT核心库
  • Python教程
  • Shell&Bash教程
  • 工具脚本
  • 自动化脚本
  • 质量保障
  • 产品思考
  • 软实力
  • 开发流程
  • Git应用
  • 技术模版
  • 技术规范
  • Markdown
  • Mermaid
  • 开源协议
  • 毛选解读
  • 自我精进
  • 关于我
  • 自我精进
  • 职场管理
  • 职场面试
  • 心情杂货
  • 友情链接
  • README
  • 业务思考

  • 产品思考

  • 软实力

  • 开发流程

  • Git应用

  • 技术模版

  • 技术规范

  • markdown

  • mermaid

  • license

    • 开源协议完全指南
      • 协议速查表
      • 学习路线
      • 一句话选协议
      • 常见误区
      • 选择决策树
    • MIT开源协议详解 协议详解
    • Apache开源协议详解 2.0 协议详解
    • GPL与LGPL协议详解 与 LGPL 协议详解
    • BSD与MPL协议详解
    • 开源协议企业实战与常见误区
  • 博客部署

  • 技术招聘

  • 八股文

  • 技术
  • license
杨充
2025-06-07
目录

开源协议完全指南

# 开源协议完全指南

选择正确的开源协议是每个开发者的必修课——一份协议决定了你的代码将如何被他人使用。

# 协议速查表

协议 商用 修改 分发 闭源 专利 传染性
MIT ✅ ✅ ✅ ✅ ❌ 无
Apache 2.0 ✅ ✅ ✅ ✅ ✅ 无
BSD ✅ ✅ ✅ ✅ ❌ 无
GPL ✅ ✅ ✅ ❌ ❌ 强
LGPL ✅ ✅ ✅ ✅ ❌ 弱
MPL ✅ ✅ ✅ ✅ ❌ 文件级
AGPL ✅ ✅ ✅ ❌ ❌ 网络强

# 学习路线

01.MIT → 02.Apache → 03.GPL/LGPL → 04.BSD/MPL → 05.企业实战
编号 文章 核心内容
01 MIT开源协议详解 最宽松协议/Vue/React/jQuery 都在用
02 Apache开源协议详解 含专利保护/Kubernetes/Android 的选择
03 GPL与LGPL协议详解 传染性强弱对比/Linux/FFmpeg 的使用
04 BSD与MPL协议详解 中间地带/文件级 copyleft
05 企业开源实战与误区 GitHub添加/package.json声明/依赖扫描/常见误区

# 一句话选协议

你的需求 推荐
"随便用,不需要署名" MIT / 公共领域
"随便用,但保留专利权利" Apache 2.0
"用了我的代码,你的代码也要开源" GPL
"除了我家的库,其他代码可以闭源" LGPL
"改了我家的文件就开源,其他随意" MPL

# 常见误区

  1. "开源就是免费" - 开源 ≠ 免费,GPL 要求衍生作品也必须开源
  2. "没写协议就安全" - 没写协议默认保留所有权利,别人不能用
  3. "GitHub 上的代码随便用" - 没有 License 就默认 All Rights Reserved
  4. "MIT 不需要署名" - MIT 要求保留版权声明
  5. "商用项目不能用 GPL 代码" - 可以用,但整个项目必须 GPL 开源

# 选择决策树

你的目标是什么?
│
├── 个人小工具,无所谓别人怎么用
│   → MIT(02.MIT详解)
│
├── 公司项目,需要专利保护
│   → Apache 2.0(03.Apache详解)
│
├── 核心产品,不想被竞品闭源复制
│   → GPL v3(04.GPL/LGPL详解)
│
├── 基础库,既想保护又想商业可用
│   → LGPL 或 MPL 2.0(04-05章)
│
├── 完全放弃所有权利
│   → Unlicense
│
└── 不确定 → 默认选 MIT

核心原则:选协议前先想清楚——你希望别人怎么用你的代码?你愿意承受怎样的限制?

#开源协议
上次更新: 2026/06/28, 17:55:19
Mermaid综合实战完全指南
MIT开源协议详解 协议详解

← Mermaid综合实战完全指南 MIT开源协议详解 协议详解→

最近更新
01
11.数据库的原理总结
07-12
02
11.操作系统原理总结
07-10
03
7.资深程序员软能力
07-10
更多文章>
Theme by Vdoing | Copyright © 2019-2026 杨充 | MIT License | 鄂ICP备2024073355号-1 | 鄂ICP备2024073355号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式