美文网首页程序员
经典面试题32 - 主流开源协议的异同

经典面试题32 - 主流开源协议的异同

作者: 豆志昂扬 | 来源:发表于2019-01-16 19:30 被阅读24次

问题

开源项目的开源协议对开发者和使用者都提供保护,常见的Apache License, GPL,MPL.等开源协议有什么异同?

解答

免费开源协议对于开发者来说都是可以免费使用的,不同点在于修改后的对于是否强制要求公开其修改,是否可以使用与之前不同的开源协议,修改文件是否强制添加版权声明,是否可以使用版权所有者的名字促销等。

先来看一张来自Pual Miller的图,它囊括了主流免费开源协议的差异。


  • Apache License
    Apache 许可证是著名的非盈利开源组织Apache采用的协议,允许开发者把修改后的源码不公开,但必须明确指明所有修改过的文件,在修改的代码中需要带有原来代码中的协议/商标/专利声明等,且禁止商标使用权。

  • BSD (Berkeley Software Distribution)
    BSD协议的自由度很高,修改后的源码可以选择无条件闭源,如Apache协议一样。
    BSD协议不要求修改后代码中需要带有原来代码中的协议/商标/专利声明等,但禁止用开源代码的作者/机构名字做市场推广。

  • MIT (The MIT License)
    MIT 许可证是最简洁和慷慨的开源协议、,作者只想保留版权,而无任何其他了限制。使用者只需要在发行版里包含原许可协议的声明即可。

  • GPL (GNU General Public License)
    GPL的出发点是代码的开源/免费使用和衍生代码的开源/免费使用,也就是说在GPL协议下,开发者虽然可以免费使用其开源代码,但要求开发软件者必须把自己编写的源程序进行公开。大公司们为了堵上这个所谓的“漏洞”,LGPL在GPL的基础上不再要求公开源代码,甚至不用公开相应修改的说明文档。

  • MPL(Mozilla Public License)
    1998年初,Netscape公司认为GPL许可证没有很好地平衡开发者对源代码的需求和他们利用源代码获得的利益。所以其整体上遵守了GPL要求修改后代码必须开源的要求,但不再要求继续使用相应协议。

更多

经典面试100题 - 持续更新中

获取更多内容请关注微信公众号豆志昂扬:

  • 直接添加公众号豆志昂扬
  • 微信扫描下图二维码;

相关文章

  • 经典面试题32 - 主流开源协议的异同

    问题 开源项目的开源协议对开发者和使用者都提供保护,常见的Apache License, GPL,MPL.等开源协...

  • 主流开源协议简述

    开源 ≠ 免费开源 ≠ 免费开源 ≠ 免费,重要的事情说三遍。 一、为何要了解开源协议 Java的强大与崛起,应当...

  • 常见开源协议介绍

    一、常用开源协议汇总图 首先从一张图开始,介绍几种主流的开源协议,以及决定选用哪种框架的思路。使用哪种开源协议,决...

  • 开源协议专题(五):开源协议的几个关键概念

    背景说明:本文主要讲述和开源协议相关的几个关键概念,方便后续介绍几个主流的开源协议以及比较他们之间的差异时能更好的...

  • 六种开源协议的简单区别

    目前的开源协议种类非常多,也很难记住每种的详细特点和区别,主流的开源协议只要为以下六种:GPL、BSD、MIT、M...

  • 开源协议分析图

    现今一些主流的开源协议区别图,由乌克兰程序员Paul Bagwell分析(由阮一峰)进行汉化。 以上便于在使用开源...

  • 几种开源协议的学习(BSD, GPL, LGPL, MIT)

    几种开源协议的学习 目前开源协议有很多,经过Open Source Initiative组织通过批准的开源协议目前...

  • 关于开源的一些注意事项

    开源协议概要 目前开源的协议可以参考GNU组织的开源许可协议:[具体参考链]。(http://www.gnu.or...

  • 关于IM协议

    主流IM协议简介 四种主流的IM协议, XMPP协议、即时信息和空间协议(IMPP)、空间和即时信息协议(PRIM...

  • 物联网:STM32的MQTT软硬件设计(1)

    MQTT是IBM开源的物联网的二进制通信数据流协议,底层基于TCP/IP协议栈。本次我将和大家一起基于STM32F...

网友评论

    本文标题:经典面试题32 - 主流开源协议的异同

    本文链接:https://www.haomeiwen.com/subject/qdemdqtx.html