一般在github或者gitee上项目在开源协议时基本上大多都不明白这些协议的意思,都包含什么。当专用一些开源项目时其实也会害怕是否没有遵守或者说有违反协议的时候。它们都包含什么又有什么区别呢?
说一说常见的几种开源协议,当然咱也不是专业搞知识产权的,只能从字面意思稍作了解,当做知识的扩充:
BSD协议
首先我想说的是BSD协议,BSD是加州大学伯克利分校发布的协议。在软件复用上给了最小程度的限制。
BSD协议允许作业使用该协议下的资源并私有、闭源发布。
二条款BSD
1.再发布的产品中含有源代码,则源代码必须带有原有的BSD协议。2.如果再发布的是二进制类库/软件需要在
文档中声明原来包含的BSD协议。
三条款BSD
除了上面二条款那几条外
3.不准用原来开源的作者或机构的名字来做市场推广。
GPL协议(GNU General Public License)
这个在Linux里见的比较多,是由GNU组织发布的,Linux和Git正是遵守这一协议。该协议为了确保自由软件,包括自由复制、分发和修改。强调自由。自由发布软件可以收费。 必须包含许可协议和版权声明。
MIT协议(MIT License)
MIT许可来自麻省理工学院。内容与BSD相似。但是授予软件被授权人更大的权力。被授权人可以使用、父子、修改、合并、出版发行、散布、在授权以及销售。副本需要包含版权声明和许可声明。
在这里插一点。我第一回知道copyleft(著佐权)是自由版权的意思,反版权。以前只知道copyright,我曾经看到的别人网站下面有个copyleft我还以是搞笑的。这个也是GNU提出的。
LGPL 协议
是GPL一个主要为类库设计的开源协议。采用LGPL协议的开源代码可以被商业软件作为类库引用发布和销售,允许商业软件使用link类库的方式使用而本身不需要开源。衍生的代码必须采用LGPL协议。保障原作者的知识产权,避免被别人复制开发同类产品。
GPL\LGPL v3
阻止了发布者私有化的方式将软件锁定,也就是说不允许发布者阻止用户修改产品内以GPL许可发布的软件。
EPL(Eclipse Public License)
允许使用者复制、分发、传播、展示、修改以及闭源发布。当二次开源发布时必须也要遵循EPL而不能改为其他的开源协议。除非得到源码发布者的许可修改。二次开源发布者必须告知其他人这个源代码的获取方式。私有发布需要注明其中遵循EPL的部分,该部分继续遵守EPL。
MPL(Mozilla Public License v2)
1998年Netscape的Mozilla小组为其开源软件创建的许可。
MPL这个和GPL以及BSD的区别在于发布者在使用MPL许可的源码的时候做出的修改首先必须也要遵循MPL,
但是MPL允许在发布者修改的源码上加上一个接口,接口需要对外开源,但是源码库中的代码可以不强制对外许可。
可与自己的代码混合。MPL不明确反对软件专利权。但是不可提供已受到专利权保护的源码,除非你自己是权利所属人。
public Domain
这个就厉害了,这是人类共有的知识的总会。包括各种文章、艺术品、音乐、科学等等为人类所共有财产。公有文化遗产。666
任何人不受限制使用它们。
看了这么多协议其实心里也备受鼓舞,并愿意遵守开源为世界带来贡献。希望哪一天自己也能写出像样的开源代码。
原文地址:https://www.cnblogs.com/knightzero/p/11186522.html