开源许可证 & 知识共享许可协议

什么是开源许可证

  开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。

版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。

​ 因此平常时我们在自己的软件产品中使用 Github、GitLab 上面开源项目源码时,必须了解该开源项目开源许可证的约束范围。以及在把自己开源项目代码添加开源许可证以约束别人使用代码的自由度。

​ 如需了解更多,可进入 Open Source Initiative

开源许可证的种类

​ 一般来说,开源许可证主要分为宽松式许可证和Copyleft许可证两种。

宽松式许可证

​ 宽松式许可证对用户几乎无限制,用户可以修改代码后闭源,其有以下特点:

  • 没有使用限制,可以修改后闭源
  • 不保证代码质量,用户自担风险
  • 用户必须披露原始作者

常见的宽松式许可证

  • BSD
  • MIT
  • Apache 2

Copyleft 许可证

​ Copyleft 意为不经许可,用户可随意复制,其特点如下:

  • 如果分发二进制格式,必须提供源代码
  • 修改后的源码必须与修改前保持许可证一致
  • 不得在原始许可证上附加其他限制
  • 一般修改后的代码不得闭源

常见的 Cofyleft 许可证

  • GPL
  • LGPL

如何根据开源许可证使用开源项目

​ 一图带你了解常见开源许可证

开源许可证选择

知识共享许可协议

​ 在一些博客文章中常常可以见到版权遵循 CC-BY-NC-SA 等信息,这代表遵循知识共享许可协议,又叫 CC 协议。是一种允许他人分发作品的公共版权许可。

CC 协议根据具体许可可包含以下条件:

  • 姓名标示(BY):您可以自由复制、散布、展示及演出本作品;您必须按照作者或授权人所指定的方式,保留其姓名标示。
  • 非商业性(NC):您可以自由复制、散布、展示及演出本作品;您不得为商业目的而使用本作品。
  • 禁止改作(ND):您可以自由复制、散布、展示及演出本作品;您不得改变、转变或改作本作品。
  • 相同方式分享(SA):您可以自由复制、散布、展示及演出本作品;若您改变、转变或改作本作品,仅在遵守与本著作相同的授权条款下,您才能散布由本作品产生的衍生作品。
  • 在没有指定“NC”的情况下,将授权对本作品进行商业利用;在没有指定“ND”的情况下,将授权创作衍生作品。

​ 根据作者需求可自由组合以上条件以标识版权许可,具体可参考 Frequently Asked Questions - Creative Commons