痞子衡嵌入式:开源软件协议(MIT/BSD/Apache/LGPL/MPL/GPL)


  大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家讲的是关于开源软件协议基本知识

  牛顿曾说过:“如果我比别人看得更远,那是因为我站在巨人的肩上”。在软件开发中如果说也存在巨人的肩膀让我们站,我想这个巨人应该就是开源软件。一个优秀的软件开发人员应该能够善于学习和利用开源软件来加速自己的开发,而为了正确地使用开源软件,我们必须要了解开源软件协议,今天我们就来聊一聊开源软件协议这个话题。

1.开源软件是什么/h3>

  前面讲到,开源软件都是有License的,猜一下,迄今为止,世界上一共有多少种开源软件License粗略统计有上百种(GNU组织整理的开源协议清单),而通过OSI(Open Source Initiative)组织批准的开源软件协议目前也有60多种(OSI组织批准的开源协议清单)

  虽然有这么多开源软件协议,但我们只需要了解其中最常用的几种就足够了,常用的开源软件License有如下6种:

  • MIT(The MIT License):源自麻省理工学院,又称“X条款”(X License)或“X11条款”(X11 License)。
  • BSD(Berkly Software Distribution):源自加州大学柏克利分校,最初是用于该校发表的各个4.4BSD/4.4BSD-Lite版本。
  • Apache(Apache License):著名的非盈利开源组织Apache采用的协议。
  • LGPL( Lesser General Public License):GNU组织制定的宽松通用公共许可证。
  • MPL(The Mozilla Public License):Netscape的Mozilla小组为其开源软件项目设计的软件许可证。
  • GPL(General Public License):GNU组织制定的通用公共许可证,由斯托曼撰写,最初用于GNU计划。

4.看懂常见开源软件协议

  前面介绍了6种常见开源协议的名称及由来,要去了解每个License具体限制(开放源码状态,著者身份的公告,开发的控制),我们可以去一句一句去读晦涩的License原文,但是还有更简单的方式迅速区分它们,下面是用于迅速区分的的5个特性:

  • 闭源允许:基于开源软件进行二次开发的衍生软件是否可以闭源/li>
  • 版权声明:修改过的开源软件文件是否必须放置原开源软件版权说明/li>
  • 品牌推销:衍生软件是否可以用原开源软件的品牌影响力进行推广/li>
  • 继承机制:基于开源软件开发的新增文件是否也需要采用原开源软件的License/li>
  • 改动申明:对开源软件文件的修改是否需要提供说明文档/li>

  按照以上5个特性,我们可以迅速将6种开源软件协议分类,详见下图:

  箭头从A框到B框代表,A框和B框中的协议是兼容的(两种开源软件可以组合使用),且最终License取决于B框中协议;而如果两个框之间没有单向的箭头贯通,即意味着两个框中的协议不兼容(两种开源软件不可以组合使用)。

  举例说明:MIT->BSD->Apache->LGPLv3->GPLv3是一个单向通路,这个通路上的任意两个及以上的开源软件都可以组合使用,软件最终License取决于通路上箭头最末端开源软件协议。MPL<-BSD->Apache是一个双向链路,链路两端的MPL和Apache协议是不兼容的,所以无法组合使用。

6.如何选择开源软件协议/h3>

  介绍到这里,开源软件协议这个话题也就基本结束了,其实你应该知道该如何选择合适的开源软件协议了,底下该是你去各大开源 区尽情淘你所需要的开源项目了,还在等什么过记住,如果找到了合适开源项目,请记得浏览一遍其License内容,说不定你会遇到惊喜,比如下面的这个WTFPL 2.0协议:

  至此,关于开源软件协议基本知识痞子衡便介绍完毕了,掌声在哪里~~~

参考资料

[1]. 开源软件,自由软件,免费软件三者的区别

[2]. 科普:你该认识的四种常见开源许可证

[3]. 9个主流的开源许可协议(整理)

[4]. 如何选择开源许可证阮一峰

[5]. The Free-Libre / Open Source Software (FLOSS) License Slide

[6]. 最牛最暴力的开源协议:WTFPL

欢迎订阅

微信搜索”痞子衡嵌入式“或者扫描下面二维码,就可以在手机上第一时间看了哦。

pzhMcu_qrcode_258x258.jpg

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2016年9月9日
下一篇 2016年9月10日

相关推荐