开源(Open Source)
全称是:开放源代码。
在今天,不仅是软件的源代码,还有硬件的机械图、电路图、PCB图,甚至整个工程项目的源文件,也都是开源的对象。
开源的目的,就是让用户在一个工程项目中,利用开源的源代码和源文件,在前一位开发者的基础上进行学习、修改、完善,使之变得更完美。
开源虽然免费,但是这些源代码和源文件以及它的产物是有版权的,同样受到法律保护。
开源协议是工程项目中,那些开源共享的部分或者全部源代码和源文件,去遵循的一个公认协议,用来保护每一个为它做出贡献的开发者。
我们在开源平台发布的工程项目,需要选择一个公认的开源协议,用来保护自己和前任开发者的合法权益。
现在存在的开源协议多达几十种,下面我们看看在开源平台中常见的那些开源协议:
1、Public Domain
协议原文:
https://creativecommons.org/share-your-work/public-domain/
协议简介:
这是公有领域的协议,申明了权利或权益不为个人或团体所有,这些知识或发明是属于公有的文化遗产。
2、TAPR Open Hardware License
协议原文:
https://www.tapr.org/ohl.html
协议简介:
这是TAPR开放硬件许可证,
它与GNU通用公共许可证一样,OHL旨在保证你分享和创造的自由。它禁止任何人接受OHL规定的拒绝任何其他被许可人的相同权利的权利复制、修改和分发文档,以及制作、使用和根据文件分发产品。它又与GPL不同,OHL主要不是版权许可。
3、CERN Open Hardware License
协议原文:
https://www.ohwr.org/projects/cernohl/wiki
协议简介:
这是CERN开放硬件许可证,
CERN方面称OHL的诞生源自于其想公开分享硬件设计的愿望。他们认为GPL、MIT以及Apache 2.0之类的开源许可证并不能完全满足其想要分享硬件设计的需求。
在硬件方面,与商业公司合作是必要的,因为需要有人来制造它、组装测试并卖出。公司不喜欢法律风险,所以需要一个许可证来明确条件是什么。
CERN开放式硬件许可证2.0版于2020年正式发布,以促进硬件设计者之间的合作;并提供一个法律工具,支持自由使用、研究、修改、分享和分发硬件设计和基于这些设计的产品。该许可证版本最终获得了三种变体包括CERN-OHL-P(permissive);以及两个互惠许可证:CERN-OHL-W(weakly reciprocal)和CERN-OHL-S(strongly reciprocal)。
4、GPL 3.0(GNU General Public License version 3)
协议原文:
https://opensource.org/licenses/GPL-3.0
协议简介:
这是GUN的通用公共许可证,
只要在工程项目中使用了GPL协议下的产品,那么这个工程项目必须采用GPL协议,也就是说必须开源和免费。
GPL的出发点是代码的开源与免费使用和引用、修改、衍生代码的开源与免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
GPL最显著的特点是“病毒性传播”和“不允许闭源的商业发布”,我们熟悉的linux就是使用了GPL许可。
5、LGPL(GNU LGPL)
协议原文:
https://opensource.org/licenses/lgpl-license
协议简介:
这是GNU的宽通用公共许可证,
LGPL是GPL主要为类库使用而设计的开源协议,与原生的GPL协议不同。
LGPL允许商业软件通过对类库以引用的方式使用LGPL类库,而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。
但是如果修改LGPL协议的代码或者衍生代码,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议开源。
因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
GPL和LGPL都是在保护原作者的知识产权,避免有人利用开源代码复制并开发类似产品闭源销售。
6、BSD(Berkeley Software Distribution)
协议原文:
https://opensource.org/licenses/BSD-2-Clause
协议简介:
这是"伯克利软件发行版"许可,
是一个给予使用者很大自由度的协议,基本上可以认为是能“为所欲为”的使用。
可以自由使用、修改源工程,也可以将原工程修改后的工程作为开源或者专有再发布,但是需要满足下面的条件:
a、如果再发布的产品中包含源工程,则在工程中必须带有原来的BSD协议;
b、如果再发布的只是二进制类库或软件,则需要在类库或软件的文档和版权声明中包含原来代码中的BSD协议;
c、不可以用开源的作者或机构名字以及原来产品的名字去做市场推广。
7、MIT(The MIT License)
协议原文:
https://opensource.org/licenses/MIT
协议简介:
MIT和BSD一样是宽泛的许可协议,作者只保留版权,而无需任何其他的限制。
MIT许可证的名字源自麻省理工学院(Massachusetts Institute of Technology),又叫做「X条款」(X License)或者「X11条款」(X11 License)。
MIT内容与三条款BSD许可证(3-clause BSD license)内容很像,但是赋予被授权人更大的权利和更少的限制。
被授权人有权利使用、复制、修改、合并、出版发行、散布、再授权及出售软件及软件的副本。 被授权人可根据程式的需要修改授权条款为适当的内容。 在软件和软件的所有副本中都必须包含版权声明和许可声明。此授权条款并非属copyleft的自由软件授权条款,允许在自由或开放源码软件或非自由软件(proprietary software)所使用。
这就是MIT与BSD本质上不同之处。
MIT条款可与其他授权条款并存。另外,MIT条款也是自由软件基金会(FSF)所认可的自由软件授权条款,是与GPL相容的。
8、知识共享许可
CC-BY 3.0
协议原文:
https://creativecommons.org/licenses/by/3.0/
CC-BY-SA 3.0
协议原文:
https://creativecommons.org/licenses/by-sa/3.0/
CC-BY-NC-SA 3.0
协议原文:
https://creativecommons.org/licenses/by-nc-sa/3.0/
CC-BY-NC 3.0
协议原文:
https://creativecommons.org/licenses/by-nc/3.0/
协议简介:
上面这四种协议都是知识共享许可,那些字母代表的意义如下:
CC:知识共享许可协议(Creative Commons license)的缩写。
BY:署名,您必须给出适当的署名,提供指向本许可协议的链接,同时标明是否(对原始作品)作了修改。
SA:相同方式共享,如果您在混合、转换或者基于本工程项目进行创作开发,您必须基于与原先许可协议相同的许可协议分享发布您贡献的部分。
NC:非商业使用,您不得将本作品用于商业目的。
ND:禁止演绎,如果您在混合、转换或者基于该作品创作开发,您不可以分享发布修改后的作品。
申明:
文中涉及开源协议的简介和解释,源于协议原文和相关文章的内容。
个人能力有限整理汇编的内容如有误差,请告知我,我将通过置顶评论的方式进行纠正。