什么是开源?

开源(Open Source)

全称是:开放源代码。

在今天,不仅是软件的源代码,还有硬件的机械图、电路图、PCB图,甚至整个工程项目的源文件,也都是开源的对象。

开源的目的,就是让用户在一个工程项目中,利用开源的源代码和源文件,在前一位开发者的基础上进行学习、修改、完善,使之变得更完美。

开源虽然免费,但是这些源代码和源文件以及它的产物是有版权的,同样受到保护。

 

 

什么是开源协议?

开源协议是工程项目中,那些开源共享的部分或者全部源代码和源文件,去遵循的一个公认协议,用来保护每一个为它做出贡献的开发者。

常用的开源协议

我们在开源平台发布的工程项目,需要选择一个公认的开源协议,用来保护自己和前任开发者的合法权益。

现在存在的开源协议多达几十种,下面我们看看在开源平台中常见的那些开源协议:

1、Public Domain

协议原文:
https://creativecommons.org/share-your-work/public-domain/

协议简介:

这是公有领域的协议,申明了权利或权益不为个人或团体所有,这些知识或发明是属于公有遗产。

2、TAPR Open Hardware License

协议简介:

这是TAPR开放硬件许可证,

它与GNU通用公共许可证一样,OHL旨在保证你分享和创造的自由。它禁止任何人接受OHL规定的拒绝任何其他被许可人的相同权利的权利复制、修改和分发文档,以及制作、使用和根据文件分发产品。它又与GPL不同,OHL主要不是版权许可。

3、CERN Open Hardware License

协议原文:
https://www.ohwr.org/projects/cernohl/wiki

协议简介:

这是CERN开放硬件许可证,

CERN方面称OHL的诞生源自于其想公开分享硬件的愿望。他们认为GPL、MIT以及 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最显著的特点是“病毒性传播”和“不允许闭源的商业发布”,我们熟悉的就是使用了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禁止演绎,如果您在混合、转换或者基于该作品创作开发,您不可以分享发布修改后的作品。

申明:

文中涉及开源协议的简介和解释,源于协议原文和相关文章的内容。

个人能力有限整理汇编的内容如有误差,请告知我,我将通过置顶评论的方式进行纠正。