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

经典面试题32 - 主流开源协议的异同_第1张图片

问题

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

解答

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

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


经典面试题32 - 主流开源协议的异同_第2张图片
  • 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 - 主流开源协议的异同_第3张图片

你可能感兴趣的:(经典面试题32 - 主流开源协议的异同)