开源不等于免费。 为了加速开发,我们会使用开源的软件和源码;为避免商业风险,需要在使用时了解第三方组件的软件协议、版本和已知 CVE 风险。本系列前半部分从”开源软件再发布过程中的使用权限”角度梳理常见协议的异同,后半部分梳理企业常见的认证体系。
开源协议
常见软件开源协议详解
从开源软件再发布过程使用权限的角度入手,总结各个常见开源协议(GPL、LGPL、MIT、BSD、Apache 等)的异同,方便理解和选型。详见 常见软件开源协议详解。
AGPL v3 开源协议(慎用)
AGPL 是 GPL 的一个补充,在 GPL 的基础上加了一些限制。GPL 的约束生效前提是该软件”发布”——有的公司使用 GPL 组件编写 Web 系统,但不发布系统、只用它在线提供服务,这样就规避了开源义务。而 AGPL 要求:如果云服务(SaaS)用到的代码是该许可证,那云服务的代码也必须开源。详见 AGPL v3 开源协议(慎用)。
国产开源:木兰许可协议系列
伴随着国际形势的变迁,越来越多组织声明遵循美国出口管制法律的约束,并且蔓延到了开源领域。关于国内开源生态如何自立,木兰系列许可证由此诞生(包含”木兰宽松许可证”和”木兰公共许可证”等),由北京大学牵头起草、修订并发布。其中 Mulan PSL 是国内首个被 OSI 认定的国产开源软件协议。详见 国产开源:木兰许可协议系列。
知识共享许可协议
知识共享(Creative Commons)协议多用于内容和文档站点,多数站点采用 CC BY-NC-SA 4.0,即署名-非商业性使用-相同方式共享。详见 知识共享许可协议文本。
企业认证
常见企业开发和系统认证
企业服务与 ToB 业务中绕不开各类认证,总览见 常见企业开发和系统认证,本系列覆盖三件套:
- 信息安全等级保护认证(等保)—— 国内网络安全基础制度
- 信息安全管理认证 ISO27001 —— 国际信息安全管理体系标准
- 能力成熟度模型集成认证 CMMI —— 软件过程能力成熟度模型
系列导航
- 下一篇:常见软件开源协议详解
- 实用提醒:技术选型时,Hutool 等国内开源库采用的正是木兰协议,商业项目需留意。