• Welcome to the world's largest Chinese hacker forum

    Welcome to the world's largest Chinese hacker forum, our forum registration is open! You can now register for technical communication with us, this is a free and open to the world of the BBS, we founded the purpose for the study of network security, please don't release business of black/grey, or on the BBS posts, to seek help hacker if violations, we will permanently frozen your IP and account, thank you for your cooperation. Hacker attack and defense cracking or network Security

    business please click here: Creation Security  From CNHACKTEAM

1.14什么是开源协议?你有什么?如何选择?


Recommended Posts

开源软件在追求“自由”的同时,不能牺牲程序员的利益,否则会影响程序员的创作激情。所以现在世界上有60多个开源倡议认可的开源许可协议来保障开源工作者的权益。

开源协议规定了你在使用开源软件时的权利和责任,即你能做什么,不能做什么。

开源协议虽然不一定具有法律效力,但在涉及软件著作权纠纷时,也是最重要的证据之一。

对于准备写一个开源软件的开发者来说,也非常建议首先了解最流行的开源许可协议,选择一个合适的开源许可协议,最大限度的保护自己的软件权益。

1) GNU GPL(GNU General Public License,GNU通用公共许可证)

GUN  GPL开源协议图标

只要软件包含符合GPL协议的产品或代码,软件也必须符合GPL许可协议,即必须开源免费,不能闭源收费。因此,该协议不适用于商业软件。

遵循GPL协议的开源软件数量极其庞大,包括Linux系统在内的大多数开源软件都是基于该协议的。

特性

解释

生殖自由

允许软件拷贝到任何人的电脑上,拷贝数量不限。

通信自由

允许软件以各种形式传播。

长途传播

允许在各种媒体上销售该软件,但买方必须事先知道该软件是免费提供的;所以一般来说,开源软件是通过向用户提供付费服务来盈利的。

修改的自由

开发者可以添加或删除软件的功能,但修改后的软件仍必须基于GPL许可协议获得授权。

2) BSD(Berkeley Software Distribution,伯克利软件发布版)协议

BSD开源协议图标

BSD协议基本上允许用户“为所欲为”。只要满足以下三个条件,用户可以使用、修改和重新分发遵循本许可证的软件,并且可以将软件作为商业软件进行分发和销售:

如果重新分发的软件包含源代码,源代码必须继续遵守BSD许可协议。

如果再分发软件中只有二进制程序,需要在相关文档或版权文档中声明原代码符合BSD协议。

不得使用原软件名称、作者姓名或机构名称进行营销。

BSD是业务友好的,很多公司在选择开源产品的时候更倾向于BSD协议,因为可以完全控制这些第三方的代码,必要的时候甚至可以修改或者重新开发。

3) Apache 许可证版本(Apache License Version)协议

Apache开源协议

Apache和BSD一样,适用于商业软件。Apache为开发者提供版权和专利许可,同时允许用户自由修改和重新发布代码。

现在流行的Hadoop、Apache HTTP Server、MongoDB等项目都是基于这个许可协议开发的。程序开发者在开发遵循本协议的软件时,应严格遵守以下四个条件:

该软件及其衍生产品必须继续使用Apache许可协议。

如果修改了程序源代码,需要在文档中声明。

如果软件是基于别人的源代码编写的,需要保留原作者声明的原代码的协议、商标、专利声明等内容信息。

如果重新分发的软件中有声明文件,Apache许可协议和其他许可协议应该在该文件中进行标记。

4) MIT(Massachusetts Institute of Techno

logy)协议

目前限制最少的开源许可协议之一(比 BSD 和 Apache 的限制都少),只要程序的开发者在修改后的源代码中保留原作者的许可信息即可,因此普遍被商业软件所使用。

使用 MIT 协议的软件有 PuTTY、X Window System、Ruby on Rails、Lua 5.0 onwards、Mono 等。

5) GUN LGPL(GNU Lesser General Public License,GNU 宽通用公共许可证)

LGPL 是 GPL 的一个衍生版本,也被称为 GPL V2,该协议主要是为类库设计的开源协议。

LGPL 允许商业软件通过类库引用(link)的方式使用 LGPL 类库,而不需要开源商业软件的代码。这使得采用 LGPL 协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改 LGPL 协议的代码或者衍生品,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用 LGPL 协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以 LGPL 协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

如何选择开源协议

世界上的开源协议有上百种(有兴趣的读者请猛击这里了解),很少有人能彻底搞清它们之间的区别,即使在最流行的六种开源协议——GPL、BSD、MIT、Mozilla、Apache 和 LGPL——之中做选择,也很复杂。

乌克兰程序员 Paul Bagwell 画了一张分析图,说明应该怎么选择开源协议,大家看了一目了然,真是清爽。

图片来自于阮一峰博客:如何选择开源协议

如何选择开源协议

Link to comment
Share on other sites