常见开源协议介绍

搬砖: https://zhuanlan.zhihu.com/p/569905141

借用乌克兰程序员Paul Bagwell的分析图

image

一、BSD协议

主要特点:

  • 允许修改源码
  • 允许源码再发布
  • 允许商业软件发布和销售

约束:

  • 如果再次发布的产品中包含源代码,需要在源代码中必须带有原来代码中的BSD协议。
  • 如果再发布的只是二进制类库/软件,则需要在类库/软件的文档和版权声明中包含原来代码中的BSD协议。
  • 不可以用开源代码的作者/机构名字和原来产品的名字做市场推广。

BSD 对商业比较友好,很多公司在选用开源产品的时候都首选 BSD 协议,因为可以完全控制这些第三方的代码,甚至在必要的时候可以修改或者二次开发

二、Apache Licence 2.0

apache是一个有着全球影响力的开源组织,其推行的apache licence 2.0 与BSD十分类似,允许使用方进行二次开发和商用,但必须遵守以下约束:

  • 需要给代码的用户一份Apache Licence
  • 如果你修改了代码,需要在被修改的文件中说明。
  • 在延伸的代码中(修改和包含源代码衍生的代码中)需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。
  • 如果再次发布的产品中包含一个Notice文件,则在Notice文件中需要带有Apache Licence。你可以在Notice中增加自己的许可,但不可以表现为对Apache Licence构成更改。

三、GPL

GPL协议全称为“GNU General Public License”,中文名称为“GNU通用公共许可证”,该协议与前面提及的两项协议存在较大区别,主要是协议具有强制开源性,不利于商业化使用,主要约束有:

  • 1、始终保持源码开放:无论是面向开发人员还是非开发人员,都需要确保二次开发后的产品整个源码可见;无论是以何种介质方式提供,即便是提供二进制可执行代码也必须附上产品源码。
  • 2、不要求版权和署名:只要满足第一个条件,你无需在源码或在声明中备注前述开源作者等相关信息,整体表现为纯粹的反版权。
  • 3、允许对使用方收取一定的服务费:但必须非常清晰地界定,这个费用与代码成果无关,是一笔感谢费而已。

只要软件中包含了遵循 GPL 协议的产品或代码,该软件就必须也遵循 GPL 许可协议,也就是必须开源免费,不能闭源收费,因此这个协议并不适合商用软件。遵循 GPL 协议的开源软件数量极其庞大,包括 Linux 系统在内的大多数的开源软件都是基于这个协议的

posted @ 2023-06-21 20:37  wusanga  阅读(61)  评论(0编辑  收藏  举报