一、开源协议
什么是许可协议?
什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。
而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。
注意的地方:
阮一峰老师文章下面有人问到:Javascript 这样的客户端脚本,是不是不加密就算开源了?
阮老师回答:如果没有版权说明的话,那么就属于保留全部版权,你只能借鉴,不能直接拿过来用。
开源协议有哪些?
说到开源协议,必须先简单介绍一下自由软件这个词。根据百科的解释,自由软件是一种可以不受限制地自由使用、复制、研究、修改和分发的软件。注意,自由并不代表着免费。正是这种开放、开源的精神,计算机软件才得以如此飞快地发展。而开源协议,或者叫开源许可证,就是为保护自由软件原作者的相关知识产权,在作者与用户之间设立的一种虚拟合同,或者称之为授权方式。其中的条款内容,就是用来限制软件使用者的使用方式等。他人如有违反协议,作者有权利发起诉讼,维护自身权益。
开源届定义有几百种不同的开源协议,宽松程度不一,用以满足开源项目的各种使用场景。比如,是否允许商用,是否允许修改,修改后是否需要继续开源,开源是否必须继续使用相同协议授权等。
不过,作为普通用户,无论你是作为开源作者造轮子,还是作为普通用户借轮子,我们只需要知道比较流行的那几种,并能够加以区分即可。否则,上百种协议真要细分的话,绝非易事。(PS:世界上的开源许可证,大概有上百种。很少有人搞得清楚它们的区别。即使在最流行的六种----GPL、BSD、MIT、Mozilla、Apache和LGPL----之中做选择,也很复杂。)
早期一名乌克兰程序员画有一张分析图,简单明了地描述出六种流行开源协议的使用区分。阮一峰老师翻译如下:
更简单点的话,也可以参考来自 GcsSloop 博文的这张图,更加通俗易懂:
至于使用的话,不妨借助 GcsSloop 制作的开源协议网站:http://choosealicense.online
如图所示:
选择所需要的协议,一键复制即可。
注意:不论你采用何种协议,一旦你在一些平台上发布你的内容,你就默认接受了该平台的协议,这一点尤其需要注意,例如 GitHub 上,默认允许他人查看和 fork 你的开源项目。
(另外,关于如何选择协议,也可参考下 phodal 的这幅图。原图在这里 )
五种开源协议(GPL,LGPL,BSD,MIT,Apache)简单介绍
1、GNU GPL
GNU General Public Licence (GPL) 有可能是开源界最常用的许可模式。GPL 保证了所有开发者的权利,同时为使用者提供了足够的复制,分发,修改的权利:
- 可自由复制
你可以将软件复制到你的电脑,你客户的电脑,或者任何地方。复制份数没有任何限制。 - 可自由分发
在你的网站提供下载,拷贝到U盘送人,或者将源代码打印出来从窗户扔出去(环保起见,请别这样做)。 - 可以用来盈利
你可以在分发软件的时候收费,但你必须在收费前向你的客户提供该软件的 GNU GPL 许可协议,以便让他们知道,他们可以从别的渠道免费得到这份软件,以及你收费的理由。 - 可自由修改
如果你想添加或删除某个功能,没问题,如果你想在别的项目中使用部分代码,也没问题,唯一的要求是,使用了这段代码的项目也必须使用 GPL 协议。
需要注意的是,分发的时候,需要明确提供源代码和二进制文件,另外,用于某些程序的某些协议有一些问题和限制,你可以看一下 @PierreJoye 写的 Practical Guide to GPL Compliance 一文。使用 GPL 协议,你必须在源代码代码中包含相应信息,以及协议本身。
2、GNU LGPL
GNU 还有另外一种协议,叫做 LGPL (Lesser General Public Licence),它对产品所保留的权利比 GPL 少,总的来说,LGPL 适合那些用于非 GPL 或非开源产品的开源类库或框架。因为 GPL 要求,使用了 GPL 代码的产品必须也使用 GPL 协议,开发者不允许将 GPL 代码用于商业产品。LGPL 绕过了这一限制。
3、BSD
BSD 在软件分发方面的限制比别的开源协议(如 GNU GPL)要少。该协议有多种版本,最主要的版本有两个,新 BSD 协议与简单 BSD 协议,这两种协议经过修正,都和 GPL 兼容,并为开源组织所认可。
新 BSD 协议(3条款协议)在软件分发方面,除需要包含一份版权提示和免责声明之外,没有任何限制。另外,该协议还禁止拿开发者的名义为衍生产品背书,但简单 BSD 协议删除了这一条款。
4、MIT
MIT 协议可能是几大开源协议中最宽松的一个,核心条款是:
该软件及其相关文档对所有人免费,可以任意处置,包括使用,复制,修改,合并,发表,分发,再授权,或者销售。唯一的限制是,软件中必须包含上述版 权和许可提示。
这意味着:
- 你可以自由使用,复制,修改,可以用于自己的项目。
- 可以免费分发或用来盈利。
- 唯一的限制是必须包含许可声明。
MIT 协议是所有开源许可中最宽松的一个,除了必http://choosealicense.online/licenses/gpl-3.0/须包含许可声明外,再无任何限制。
5、Apache
Apache 协议 2.0 和别的开源协议相比,除了为用户提供版权许可之外,还有专利许可,对于那些涉及专利内容的开发者而言,该协议最适合(这里有 一篇文章阐述这个问题)。
Apache 协议还有以下需要说明的地方:
- 永久权利
一旦被授权,永久拥有。 - 全球范围的权利
在一个国家获得授权,适用于所有国家。假如你在美国,许可是从印度授权的,也没有问题。 - 授权免费,且无版税
前期,后期均无任何费用。 - 授权无排他性
任何人都可以获得授权 - 授权不可撤消
一旦获得授权,没有任何人可以取消。比如,你基于该产品代码开发了衍生产品,你不用担心会在某一天被禁止使用该代码。
分发代码方面包含一些要求,主要是,要在声明中对参与开发的人给予认可并包含一份许可协议原文。
PS: GcsSloop 对他使用的开源协议是这么说的(哈哈,我也参考下)
目前使用最多的是MIT协议,而我(GcsSloop)常用的则是 Apache License 2.0 协议,因为这样可以帮助我知道有哪些开源项目使用了我的内容,以及进行了何种修改,有利于我改进自己项目。
之所以采用这个协议,而不使用 GNU GPLv3 ,是因为 GNU GPLv3 使用者必须按照相同的协议开源,而 Apache License 2.0 相对比较宽松,你可以私用,也可以闭源,但是如果开源项目使用到的时候,只需要放置一下版权声明以及修改声明即可。
二、知识共享协议
知识共享协议也属于版权协议的一种,常用于数据、多媒体、网站、文章等内容,是作者保障自己权益的一道屏障。
知识共享协议(Creative Commons,也称为CC协议) 有很多版本,不过需要注意的是,知识共享协议不适用于开源软件。
注意:虽然你可以采用知识共享协议来保护你的内容,但是一旦你在某些平台上发布你的内容,你就默认接受了该平台的协议,这一点尤其需要注意。
选择一个知识共享协议
可以到 creativecommons.org 为自己选择一个合适的知识共享协议。比如:知识共享 署名-非商业性使用-禁止演绎 4.0 国际 许可协议,这个在知识共享协议里面算是比较严苛的一个协议了,它允许所有人在非商业用途下免费转载,但必须:
- 保持原文,不作修改。
- 明确署名,即至少注明作者字样以及文章的原始链接,且不得使用
rel="nofollow"
标记。- 商业用途可以联系本人,需要征得本人同意。
关于参考链接
我们人类之所以发展这么快,是因为有前人的努力,我们都是站在巨人肩膀上的人,书写文章也不例外,有很多需要借鉴他人的地方,如果借鉴了他人的想法或者成果,建议在文末加上参考链接。除了能够帮助读者更好理解知识的来源外,也可以顺便给这些人带来一些名气。
三、参考资料:
- 程序员都应该懂一点开源协议
- 程序员不可不知的版权协议
- 一张图看懂开源许可协议,开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别
- 五种开源协议(GPL,LGPL,BSD,MIT,Apache)
相关网站:
四、延伸阅读(商标、专利、版权)
知乎:为什么海外各种限制版权?
综上所述,不同知识产权保护的领域各不相同:商标保护的重点是商品或服务的标志,而专利保护的重点是具有新颖性的技术,版权保护的重点则是独创性的作品。从上文的例子也可看出,为了保护智能汽车的名称、技术和软件源代码,A公司分别申请了商标、专利和软件著作权登记,以此达到全方位保护知识产权的目的。
总结:知识产权是一个大概念,里面三大核心权利,即①著作权、②专利权和③商标权。
版权即著作权,不同的说法。
专利分三种:
- 发明专利
- 实用新型专利
- 外观设计专利
百度知道:为什么专利有保护期限?
专利就是以公开来换取垄断式保护,如果不设置保护期限,永久性地垄断下去,享有专利的企业可以凭借专利来一直发财,不需要再创新,不利于推动技术进步。一般国家发明专利保护期限是20年,外观专利是10年。如果保护期限太短,企业研发成本很高,享受的保护还没抵得上研发投资,发明人就没有积极性。对于非专利人来讲,专利保护期限过长,就等于助长了不公平竞争。
发明专利全期限为20年,实用新形专利权及外观设计专利权期限为10年。
转载: 原文链接