
Software License Overview
软件许可证是软件开发者或版权所有者授予用户使用、修改或分发软件的法律协议。根据许可证的不同,用户对软件的权限和义务也有所区别。软件许可证可以大致分为以下几类:
专有软件许可证
这些许可证通常由商业软件公司提供,用户需要遵循严格的使用限制。
商业软件许可证
- 代表:Microsoft Windows、Adobe Photoshop
- 许可模式:通常要求购买许可证后才能使用
- 限制:不能修改或分发软件,通常只有执行权
订阅模式许可证
- 代表:Adobe Creative Cloud、Microsoft 365
- 许可模式:按月/年付费订阅
- 限制:软件只能在订阅有效期内使用
终端用户许可协议(EULA)
- 代表:几乎所有商业软件都会附带
- 许可模式:用户必须同意 EULA 条款才能安装或使用软件
- 限制:通常禁止逆向工程、修改或再分发
开源软件许可证
开源许可证允许用户查看、修改和分发源代码,但不同许可证对这些权利的限制有所不同。
宽松开源许可证
这些许可证允许用户修改并闭源分发代码,无需开源衍生作品。
MIT 许可证(MIT License)
代表项目:React.js、Node.js
许可模式:允许自由使用、修改和分发
主要特点:
- 代码可用于闭源软件
- 只需保留原始许可声明
- 免责条款:不对代码的质量和安全性负责
许可证模板:MIT License
Apache 许可证 2.0(Apache License 2.0)
- 代表项目:Android、TensorFlow
- 许可模式:比 MIT 更严格,要求贡献代码的人授予专利授权
- 主要特点:
- 允许闭源
- 需声明修改内容
- 提供专利授权
- 许可证模板:Apache-2.0
BSD 许可证(Berkeley Software Distribution License)
- 代表项目:FreeBSD、PostgreSQL
- 许可模式:类似 MIT 但有不同变体
- 主要特点:
- BSD-2-Clause:要求保留原作者声明
- BSD-3-Clause:额外禁止使用原作者的名字做推广
- 许可证模板:BSD-3
传染性许可证
要求所有基于该软件的派生作品也必须使用相同的许可证,确保代码持续开源。
GNU 通用公共许可证(GPL,General Public License)
- 代表项目:Linux Kernel、GCC
- 许可模式:所有衍生软件必须开源(强 Copyleft)
- 主要特点:
- GPLv2:较严格,要求所有衍生作品必须完全开源
- GPLv3:新增专利保护和 Tivoization(防止锁定硬件)
- 许可证模板:GPL-3.0
LGPL(Lesser General Public License)
- 代表项目:FFmpeg、Qt
- 许可模式:允许闭源软件动态链接 LGPL 代码
- 主要特点:
- 适用于库,允许与闭源软件动态链接
- 但如果修改库本身,必须开源
- 许可证模板:LGPL-3.0
AGPL(Affero General Public License)
- 代表项目:MongoDB
- 许可模式:适用于网络服务端软件,要求分发服务端代码
- 主要特点:
- 与 GPL 类似,但进一步要求通过网络交互的修改内容也必须开源
- 确保所有用户都能访问服务端的源代码
- 许可证模板:AGPL-3.0
FDL(Free Documentation License)
- 代表项目:GNU 文档
- 许可模式:主要用于文档和书籍,要求衍生品也必须开源
- 主要特点:
- 确保文档的内容可以自由修改和分发
- 适用于技术文档或操作手册
- 许可证模板:FDL-1.3
创意共享许可证
适用于文本、图片、音乐等非软件内容。
- CC-BY(署名):需注明作者
- CC-BY-NC(署名-非商业):只能用于非商业目的
- CC-BY-NC-ND(署名-非商业-禁止改编):不能商用且禁止修改
- CC-BY-NC-SA(署名-非商业-相同方式共享):非商业用途且衍生作品需用相同协议
- CC-BY-ND(署名-禁止改编):允许商用但禁止修改
- CC-BY-SA(署名-相同方式共享):类似 GPL,要求衍生品使用相同协议
许可证模板:Creative Commons Licenses
许可证选择指南
许可证 | 是否允许闭源 | 是否要求开源衍生品 | 适用场景 |
---|---|---|---|
MIT | ✅ 允许 | ❌ 不要求 | 个人、商业项目 |
Apache 2.0 | ✅ 允许 | ❌ 不要求 | 需要专利保护的项目 |
BSD | ✅ 允许 | ❌ 不要求 | 高自由度的开源软件 |
GPL | ❌ 禁止 | ✅ 强制开源 | Linux、自由软件 |
LGPL | ✅ 允许 | ✅ 仅库需开源 | 开源库 |
AGPL | ❌ 禁止 | ✅ 强制开源 | 网络服务端 |
FDL | ❌ 禁止 | ✅ 强制开源 | 文档、书籍 |
CC-BY | ✅ 允许 | ❌ 不要求 | 文档、图片 |
CC-BY-NC | ❌ 禁止 | ❌ 不要求 | 非商业内容 |
CC-BY-NC-ND | ❌ 禁止 | ❌ 不要求 | 非商业且禁止改编 |
CC-BY-NC-SA | ❌ 禁止 | ✅ 强制开源 | 非商业开源文化内容 |
CC-BY-ND | ✅ 允许 | ❌ 不要求 | 商用但禁止改编 |
CC-BY-SA | ✅ 允许 | ✅ 强制开源 | 开源文化内容 |