GPL程序员
GPL授予程序接受人如下权利,或称“自由”:编程
* 以任何目的运行此程序的自由学习
* 以学习程序工做机理为目的,对程序进行修改的自由(能获得源代码是前提)spa
* 再发行复制件的自由操作系统
* 改进此程序,并公开发布改进的自由(能获得源代码是前提)开放源代码
相反地,随版权全部软件的最终用户许可证几乎从不授予用户任何权利(除了使用的权利),甚至可能限制法律容许的行为,好比逆向工程。orm
GPL与其余一些更“许可的”自由软件许可证(好比BSD许可证)相比,主要区别就在于GPL寻求确保上述自由能在复制件及演绎做品中获得保障。它经过一种由Stallman发明的叫copyleft的法律机制实现,即要求GPL程序的演绎做品也要在GPL之下。相反,BSD式的许可证并不由止演绎做品变成版权全部软件。继承
copyleft开发
GPL不会授予许可证接受人无限的权利。再发行权的授予须要许可证接受人开放软件的源代码,及全部修改。且复制件、修改版本,都必须以GPL为许可证。开源软件
这些要求就是copyleft,它的基础就是做品在法律上版权全部。因为它版权全部,许可证接受人就无权进行修改和再发行(除合理使用),除非它有一个copyleft条款。若是某人想行使一般被法律所禁止的权利,只需赞成GPL的条款。相反地,若是某人发行软件违反了GPL(好比不开放源代码),他就有可能被原做者起诉。
copyleft利用版权法来达到与其相反的目的:copyleft给人不可剥夺的权利,而不是版权法所规定的诸多限制。这也是GPL被称做“被黑的版权法”的缘由。
许多GPL软件发行者都把源代码与可执行程序捆绑起来。另外一方式就是以物理介质(好比CD)为载体提供源代码。在实践中,许多GPL软件都是在互联网上发行的,源代码也有许多能够FTP方式获得。
copyleft只在程序再发行时发生效力。对软件的修改能够不公开或开放源代码,只要不发行。注意copyleft只对软件有效力,而对软件的输出并没有效力(除非输出的是软件自己)。不过这在GPL版本3中可能会有改动。
LGPL
GNU宽通用公共许可证,简称LGPL(GNU Lesser General Public License),被用于一些(但不是所有)GNU程序库。这个许可证之前被称为GNU库(Library)通用公共许可证。
LGPL是GPL的变种,也是GNU为了获得更多的甚至是商用软件开发商的支持而提出的。与GPL的最大不一样是,能够私有使用LGPL受权的自由软件,开发出来的新软件能够是私有的而不须要是自由软件。因此任何公司在使用自由软件以前应该保证在LGPL或其它GPL变种的受权下。
Apache License
Apache License是著名的非盈利开源组织Apache采用的协议。该协议和BSD相似,一样鼓励代码共享和尊重原做者的著做权,一样容许代码修改,再发布(做为开源或商业软件)。须要知足的条件:
* 须要给代码的用户一份Apache License
* 若是你修改了代码,须要再被修改的文件中说明
* 在延伸的代码中(修改和有源代码衍生的代码中)须要带有原来代码中的协议、商标、专利声明和其余原来做者规定须要包含的说明
* 若是再发布的产品中包含一个Notice文件,则在Notice文件中须要带有Apache License。你能够在Notice中增长本身的许可,但不能够表现为对Apache License构成更改
Apache License也是对商业应用友好的许可。使用者也能够在须要的时候修改代码来知足须要并做为开源或商业产品发布/销售。
BSD
BSD受权许可证(FreeBSD Copyright Information)具备多种受权许可证。总的来讲你能够对软件任意处理,只要你在软件中注明其是来自于那个项目的就能够了。也就是说你具备更大的自由度来处置软件。若是你对软件进行了修改,你能够限制其余使用者获得你修改的软件的自由。
BSD受权许可证没有实现"通透性"自由,也就是其不保证软件源代码开放的连续性。这样若是你但愿采用别人开发的BSD软件,进行一些修改,而后做为产品卖,或者仅仅保密本身的作的一些除了软件开发之外的工做,那么你就能够从中得利。
当一个非程序员仅仅理解一个程序的功能,可是不了解程序是如何作的时,即便你没有在开发软件中作任何工做那你就能够经过高超的市场技巧将软件卖给该用户。好比拿最流行的桌面操做系统做为例子,你就能很好的理解一个没有很好的程序技巧的软件公司只要具备高超的市场营销策略一样能够将垃圾卖给客户。若是你不具备很强大的编程能力,可是具备很强的市场能力和能将其余开发者的软件包括到本身的系统,而同时不将本身的修改开放出来将是很是强大的能力。从赚钱为目的的商务角度看来,若是你使用了BSD受权许可证的软件,那么你就能够任意进行。你能够更好地控制你的OS系统,而且防止其余人拷贝你的商业产品。
总结一下
简单的说,就是你使用了GPL许可证的软件,那么你的软件产品就被GPL“传染”了,也必须“自由”!这对国内的商业软件开发商来讲是很难接受的。
可是LGPL, Apache License, BSD就不存在这个问题,后二者只要求你对软件原做者的工做进行必要的承认和尊重就好了,因此这是适合商业应用的。
因此在选择应用开源软件时,必定要明白本身的用途,选择合适许可证下的软件。
最后,咱们能够参考一下对GPL的评论:
2001年微软的首席执行官Steve Ballmer称Linux为“癌症”,由于GPL的影响。微软的批评指出,微软憎恶GPL的真正缘由是由于对微软的“包围、扩展、消灭”策略起了副作用。注意微软已以GPL为许可证发行了SFU(Microsoft Windows Services for UNIX)中所包含的部分组件,例如GCC。
GPL的批评者经常认为GPL是有“传染性”的“病毒”,由于GPL条款规定演绎做品也必须是GPL的。因为“演绎做品”一般被解释为包含GPL代码或动态连接到GPL库(如上)的软件,“病毒说”来源于GPL对于许可证的强制继承的要求。这正是GPL与BSD式许可证的哲学思想上的差别。GPL的支持者确信自由软件应确保其演绎做品一样“自由”,但其余人认为自由软件应给用户最大的自由。