一、宽松型开源协议(允许闭源)
MIT许可证 - 最宽松的协议,允许任意使用、修改、复制和分发,甚至用于商业项目,只需保留版权声明。
- 适用场景:小型项目、库文件等。
BSD许可证(二条款版)
- 允许自由使用、修改和分发,但再发布时必须保留原始许可证声明,禁止以原项目名义宣传。
- 适用场景:类库开发、系统级开源项目。
Apache许可证2.0
- 提供专利授权,保护用户免受专利诉讼,允许商业使用,但需保留原始许可证和版权声明。
- 适用场景:Web服务器软件、大型开源框架。
二、传染型开源协议(强制开源)
GNU通用公共许可证(GPL)
- 要求任何基于其代码的衍生作品也必须开源,具有“传染性”。例如,Linux内核采用GPL,基于其开发的操作系统也必须开源。
- 适用场景:核心库、操作系统内核。
GNU宽松公共许可证(LGPL)
- 允许动态链接非GPL库,但修改后的库必须保持LGPL协议,适用于第三方库的集成。
三、其他重要协议
Mozilla公共许可证(MPL): 仅对原始文件开放许可,新增文件可自由修改,适用于模块化设计。 Apache许可证
四、补充说明
GPLv3:在GPLv2基础上增加对硬件和专利保护,强化了开源要求。
WTFPL(Do What The Fuck You Want To Public License):无任何限制,允许修改协议本身,极少数使用场景。
选择协议时需考虑项目性质(如是否涉及专利)、是否允许闭源、对第三方库的依赖等因素。商业项目中常用MIT、Apache等协议,而开源核心组件通常采用GPL或LGPL。