我们开发中经常会用到一些开源框架, 每个框架一般都有自己的开源协议.

本文介绍了6种常用的开源协议, 让你用得明白放心~ 

一、如何选择开源协议?

现今存在的开源协议很多,可以在(http://www.opensource.org/licenses/alphabetical )详细查看。我们最常用到的开源协议有6种,这些都是OSI 批准的协议,也是绝大多数公司会用到的协议。

  1. GPL

  2. LGPL

  3. BSD

  4. Apache

  5. Mozilla

  6. MIT

下图是网上流行的一张协议分析图,能让我们一目了然的去判断该选择何种开源协议(原著:乌克兰程序员Paul Bagwell,翻译:阮一峰)。

开源许可协议了解这些就够了_开源协议

看完这张图,是不是心里有底了呢?稍微总结一下:

  1. 如果你在商业公司上班,最好不要使用GPL协议的开源软件,因为它具有“传染性”,并且强制开源,只要引入的某个模块是GPL的,它会一直扩展到最上层知道整个项目都强制GPL开源。

  2. 用BSD、Apache或者MIT的开源项目则一般不会有问题,只需要开源项目本身的安全性或者健壮性等其他需求满足公司要求即可。

  3. 另外要说明一下的是,有协议和没声明协议的裸代码是有非常重要区别的,一般作品当中没声明协议的默认为Copy right的,也就是版权保留。此种情况表明他人没有任何授权,不得复制分发修改使用等等。所以如果要开源自己的代码,最好也是选择这些著名的开源协议。 

二、6种常用开源协议介绍

最后,针对上面提到的六种开源许可协议做一个简单资料整理和介绍,供大家查阅。 

1. BSD(original BSD license 、 FreeBSD license 、 Original BSD license)


BSD 开源协议是一个给于使用者很大自由的协议。基本上使用者可以” 为所欲为”, 可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但” 为所欲为” 的前提当你发布使用了BSD 协议的代码,或则以BSD 协议代码为基础做二次开发自己的产品时,需要满足三个条件: 

  • 如果再发布的产品中包含源代码,则在源代码中必须带有原来代码中的BSD 协议。
  • 如果再发布的只是二进制类库/ 软件,则需要在类库/ 软件的文档和版权声明中包含原来代码中的BSD 协议。
  • 不可以用开源代码的作者/ 机构名字和原来产品的名字做市场推广。 BSD 代码鼓励代码共享,但需要尊重代码作者的著作权。BSD 由于允许使用者修改和重新发布代码,也允许使用或在BSD 代码上开发商业软件发布和销售,因此是对 商业集成很友好的协议。而很多的公司企业在选用开源产品的时候都首选BSD 协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。


2. Apache Licence 2.0(Apache License, Version 2.0 、Apache License, Version 1.1 、Apache License, Version 1.0)

开源许可协议了解这些就够了_开源协议_02

3.GPL(GNU General Public License)

开源许可协议了解这些就够了_架构师_03

4.LGPL(GNU Lesser General Public License)

LGPL 是GPL 的一个为主要为类库使用设计的开源协议。和GPL 要求任何使用/ 修改/ 衍生之GPL 类库的的软件必须采用GPL 协议不同。LGPL 允许商业软件通过类库引用(link) 方式使用LGPL 类库而不需要开源商业软件的代码。这使得采用LGPL 协议的开源代码可以被商业软件作为类库引用并 发布和销售。 但是如果修改LGPL 协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL 协议。因此LGPL 协议的开源 代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用

开源许可协议了解这些就够了_架构师_04

三、膜拜开源大神

接着,贴几张开源界的大神的头像,膜拜一下。 

1.  Linus Torvalds

开源许可协议了解这些就够了_开源协议_05

Linux内核的发明人及该计划的合作者,Git的作者。 

代表作: 

(1)Linux

(2)Git 

2、Richard Matthew Stallman

开源许可协议了解这些就够了_apache_06

自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation)的创立者。

代表作:

(1)Emacs

(2)GPL

(3)GCC

(4)GDB 

3、Doug Cutting

开源许可协议了解这些就够了_架构师_07

Hadoop等项目的发起人。他将高深莫测的搜索技术形成产品,贡献给普罗大众,打造了目前在云计算和大数据领域里如日中天的Hadoop, 

代表作:

Hadoop

开源许可协议了解这些就够了_架构师_08

欢迎关注“互联网架构师”,我们分享最有价值的互联网技术干货文章,助力您成为有思想的全栈架构师,我们只聊互联网、只聊架构,不聊其他!打造最有价值的架构师圈子和社区。

本公众号覆盖中国主要首席架构师、高级架构师、CTO、技术总监、技术负责人等人 群。分享最有价值的架构思想和内容。打造中国互联网圈最有价值的架构师圈子。

  • 长按下方的二维码可以快速关注我们
  • 开源许可协议了解这些就够了_apache_09