常见的5种开源协议解析 开源协议有哪些


五种开源协议(GPL,LGPL,BSD,MIT,Apache)
前言
我发现头条上有些用户不是很明白开源协议 , 但这个开源协议对于程序员来说非常的重要 , 有时这个开源协议可以有效的保护程序员的工作成果 , 而不是被某某什么非法占有 , 因此掌握和理解这些开源协议的内容就变得至关重要 。
其实世界上的开源协议有很多 , 我在这里详细列出5种常用的开源协议的内容和理解 , 其它的开源协议请自行百度 。
开源协议对于程序员来说真的至关重要额 , 所以广大程序员同学一定要好好明白这些开源协议的内容和解释 。
什么是许可协议?
什么是许可 , 当你为你的产品签发许可 , 你是在出让自己的权利 , 不过 , 你仍然拥有版权和专利(如果申请了的话) , 许可的目的是 , 向使用你产品的人提供 一定的权限 。
不管产品是免费向公众分发 , 还是出售 , 制定一份许可协议非常有用 , 否则 , 对于前者 , 你相当于放弃了自己所有的权利 , 任何人都没有义务表明你的原始作 者身份 , 对于后者 , 你将不得不花费比开发更多的精力用来逐个处理用户的授权问题 。
而开源许可协议使这些事情变得简单 , 开发者很容易向一个项目贡献自己的代码 , 它还可以保护你原始作者的身份 , 使你 至少获得认可 , 开源许可协议还可以阻止其它人将某个产品据为己有 。以下是开源界的 5 大许可协议 。
GNU GPL
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式 。GPL 保证了所有开发者的权利 , 同时为使用者提供了足够的复制 , 分发 , 修改的权利:
可自由复制
你可以将软件复制到你的电脑 , 你客户的电脑 , 或者任何地方 。复制份数没有任何限制 。
可自由分发
在你的网站提供下载 , 拷贝到U盘送人 , 或者将源代码打印出来从窗户扔出去(环保起见 , 请别这样做) 。
可以用来盈利
你可以在分发软件的时候收费 , 但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议 , 以便让他们知道 , 他们可以从别的渠道免费得到这份软件 , 以及你收费的理由 。
可自由修改
如果你想添加或删除某个功能 , 没问题 , 如果你想在别的项目中使用部分代码 , 也没问题 , 唯一的要求是 , 使用了这段代码的项目也必须使用 GPL 协议 。
需要注意的是 , 分发的时候 , 需要明确提供源代码和二进制文件 , 另外 , 用于某些程序的某些协议有一些问题和限制 , 你可以看一下 @PierreJoye 写的 Practical Guide to GPL Compliance 一文 。使用 GPL 协议 , 你必须在源代码代码中包含相应信息 , 以及协议本身 。

推荐阅读