你对开源有多少了解呢?如果你是软件开发者,要开源软件,不单单是开放源代码就可以了,选择一种许可证很重要,一个许可证之于软件就相当于价值观之于普通人,代表了这个软件的基本品性。一个错误的许可证选择可能会直接导致整个项目的失 败,XFree86就是一个好例子。
各种开源的许可证主要的限制还是在redistribution(发布),所以个人/商业公司开发的软件包含了GPL的代码,只要你不发布,是可以任意使用的。
下面是几个开源许可证的区别:
GPL
这里不想再解释长篇的GPL译文和更长的FAQ。 简单说,GPL软件的使用者有权力得到软件的代码,只要使用了GPL,在发布(redistribution)的时候,整个项目也必须是GPL的,即主程 序和静态链接的库(Linux的.a和Windows的.lib)必须是GPL的,动态链接库(Linux的.so,Windows的.dll)必须是比 GPL兼容的。所谓GPL兼容,也就是GPL软件中可以使用的库,这些许可证必须比GPL弱(如LGPL,BSD),而不能是某个商业许可证。这里有一个 兼容列表 List of FSF approved software licenses。正因如此,GPL是带有很强的传染性,只要你的软件使用了GPL的代码,那么就请以GPL开放源代码吧,并且你的项目中也不能有任何和GPL不兼容的库。
LGPL
GPL 带有很强的传染性,那么如果一个库使用GPL发布,那么使用这个库的所有软件也必须使用GPL发布,这对不想开放源代码的商业软件来讲是致命的打击——你 可以不使用其他的库,但最基本的libc是无论如何绕不开的,如果libc是以GPL发布,就相当于所有软件必须以GPL发布了。所 以,LGPL(Lesser GPL)诞生了。LGPL定义为,在以LGPL发布的库的基础上开发新的库的时候,新的库必须以LGPL发布,但是如果仅仅是动态链接,那么则不受任何限 制。这样商业软件就可以随意的使用LGPL的库了。因此,LGPL也具有传染性,但限制在在其基础上开发的库上,而并不限制使用它的程序本身——它的传染 性远小于GPL。
BSD、Apache 2.0
相对GPL/LGPL的开放源代码,BSD,Apache 2.0就宽松许多——商业软件可以任意的使用BSD,Apache 2.0发布的软件代码,而不需要开放源代码,只需要提及代码的原出处就可以了。BSD和Apache 2.0提及的方式稍有不同,具体可以参考协议的详细内容。它们是GPL兼容的
看看下面选择开源许可证的案例:
Android 使用宽松的Apache 2.0发布,因为Google作为一个商业公司,并不想失去商业软件的支持,它希望团结一切可以团结的力量加入的Android的开发中来,壮大自己的阵 营,使用Apache 2.0就无可厚非了。而Google本身,并没有丧失对Android的控制权,不会担心另外一个公司拿走了Android的代码开发出一个闭源 Android的对手。因为,只要Android不断的出新版,社区不停的跟进,并且不停的修改API,其他基于Android开发的公司不得不把自己的 Patch提回到主干上,否则,必然将耗费大量人力物力在维护自己的Patch上(钱这方面你斗得过Google?),得不偿失。而且,闭源之后,与整个 社区为敌,作为一个定位软件平台的项目,会流失大量应用软件开发者,以小博大,任何一个商业公司都不会干这种胜算不高的蠢事。
在看以 GPL发布的Linux为什么比以BSD发布的FreeBSD成功。其实正是因为GPL的传染性。当一个开发人员在Linux基础上开发一个新功能之后, 不得不以GPL开放源代码,贡献回Linux,这样Linux本身才能越来也越壮大而且留住了相当的开发人员,形成了一个 优秀软件->很多使用者和贡献者->贡献->更优秀的软件->更多的使用者和贡献者... 的良性循环。
分享到:
相关推荐
GPL是最具影响力的开源许可证之一,由自由软件基金会(FSF)发布,旨在确保软件的自由性和开放性。根据GPL,任何使用、修改或分发GPL许可软件的人,都必须将其衍生作品也以GPL许可证发布,这被称为“传染性”或...
1. 许可证概述:介绍Apache 2.0许可证的基本原则,如它的开放源代码特性、对软件再分发的限制和要求,以及与其它开源许可证(如GPL)的区别。 2. 使用许可:详细解释如何在项目中使用Apache 2.0许可证,包括如何在...
本文将分析几种常见的开源协议,包括GPL、BSD、MIT、Mozilla(MPL)、Apache 2.0和LGPL,帮助开发者理解它们的特点和适用场景。 首先,BSD开源协议赋予了使用者极高的自由度。它允许使用者自由地使用、修改源代码,...
本文将深入探讨五种主要的开源协议:GPL、LGPL、BSD、MIT和Apache。 首先,GPL(GNU General Public License)是最具影响力的开源协议之一,它确保了软件的“copyleft”属性,即如果软件的任何部分被用于其他项目,...
GPL 2.0协议带格式文本,估计做计算机的是绕不开该协议了,可以下载下来研究研究。
开源协议是开源软件项目的重要组成部分,它决定了软件的使用、修改和...对于希望采用开源代码的商业组织,合理选择和遵守相应的开源许可证,不仅可以避免潜在的法律风险,还能更好地融入开源社区,促进技术交流和创新。
1. GPL(GNU General Public License):这是最知名的开源许可证之一,要求所有基于GPL软件的衍生作品也必须采用GPL许可证。这种“传染性”确保了源代码的自由流通。 2. LGPL(GNU Lesser General Public License)...
五种常见软件开源协议介绍-GPL、LGPL、BSD、Apache、MIT.pdf
开源协议比较 BSD, GPL, LGPL, MIT 等 开源协议是开源软件开发和使用中非常重要的一部分,选择合适的开源协议可以保护作者的权益同时也可以促进开源软件的发展。常见的开源协议有 BSD, GPL, LGPL, MIT 等,这些协议...
在本文中,我们将深入探讨五种常见的开源协议:BSD、Apache、GPL、LGPL以及MIT,并分析它们之间的差异。 首先,BSD(Berkeley Software Distribution)协议源于加州大学伯克利分校,其主要特点是宽松的授权条件。它...
以下是对五个主要开源协议——LGPL、GPL、MIT、Apache 2.0和BSD的详细解读。 1. LGPL (GNU Lesser General Public License) LGPL,全称GNU较宽松公共许可证,主要用于库和框架。与GPL相比,LGPL允许非开源项目链接...
首先,我们来介绍一下几种常见的开源许可证: 1. **GPL(GNU General Public License)**:这是一种 copyleft 许可证,要求任何基于 GPL 软件修改或扩展的新作品也必须遵循 GPL,以此保护开源精神,确保源代码的...
本文将详细介绍五种常用的开源许可证——BSD、GPL、LGPL、MIT以及Apache License,并探讨它们对商业运作的具体影响。 #### 二、许可证详解 ##### 1. BSD许可证 - **定义**:BSD许可证是一种非常宽松的许可证,它...
五种开源协议的比较(BSD,APACHE,GPL,LGPL,MIT)–整理Comparison of five open source license (BSD, APACHE, GPL, LGPL, MIT)- finishing
常见的开源授权许可协议有GPL、LGPL、Apache、BSD等。每种协议都有其特点和要求,对于开发者来说,了解这些协议非常重要。 GPL协议 GPL(General Public License)是一种常见的开源授权许可协议。它是由Richard ...
2. Apache 2.0许可证:Apache 2.0同样宽松,除了要求保留原始版权和许可声明外,还包含了一项专利许可条款,允许用户在遇到专利侵权时有防御的权利。许多大型开源项目,包括Apache软件基金会的项目,都采用此许可证...
常见的开源许可证有MIT、Apache 2.0、GPL、LGPL等。MIT许可证允许自由使用、修改和重新分发,但要求保留原作者的版权声明;Apache 2.0许可证同样宽松,但增加了专利授权条款;GPL(GNU General Public License)则...
MIT 许可证是一种非常宽松的开源许可证,允许用户自由地使用、复制、修改、合并、发布、分发、子许可和/或销售软件副本,同时要求保留原始作者的版权和许可通知。这种许可证鼓励软件的广泛使用和共享,通常适用于...
- **特点**: Apache License 2.0 是一种比较宽松的开源许可证,它允许使用者修改和重新发布遵循此许可证的原始作品的副本。但是,在衍生产品中需要包含版权声明和许可声明。 - **应用场景**: 当开发者希望在保护...
- **开源许可证**:允许用户查看、修改和分发源代码,如GPL、MIT、Apache等。开源软件的许可证鼓励社区合作,促进软件的持续改进和创新。 - **闭源许可证**:用户只能按照许可协议使用二进制形式的软件,无法访问...