GPL AND LGPL

来源:互联网 发布:安卓模拟器软件 编辑:程序博客网 时间:2024/06/06 03:38

本文转自 http://blog.chinaunix.net/uid-22028566-id-3246173.html

开源软件的许可证
Linux方案能够降低软件成本的主要原因就是使用了包括Linux内核在内的大量开源软件。 开源软件总是按照某个软件许可证发布的,必须遵守开源软件的许可证,才能合法地使用开源软件。有很多种开源软件许可证。最常见的许可证就是GPL和LGPL。许可证有不同的版本。例如Linux内核使用的许可证就是GPLv2。
GPL和LGPL都是GNU组织开发的许可证,可以见:http://www.gnu.org/licenses/licenses.html。GNU是倡导自由软件的非盈利组织,GNU组织为世界提供了大量优秀的自由软件。GPL代表The GNU General Public License。LGPL代表The GNU Lesser General Public License。尽管这些文本有中文翻译,但法律上生效的还是英文文本。
1.2.1 GPL
我们可以自由地运行GPL软件,例如使用gcc编译器编译商用软件。但如果我们在自己的程序中引用了GPL软件(不管是静态链接还是动态链接),并发布这个程序,我们就必须给获得该程序的人提供相同的权利,通常是也按GPL发布。指责GPL的人根据这个特性将GPL称作病毒。
Linux内核是以GPL许可证发布的。不过,Linus Torvalds(Linux的原作者)在GPL许可证前加了说明:它规定在内核上执行的应用程序不受GPL的制约。所以在Linux上运行的应用软件可以是私有的。但是如果我们修改了Linux内核,就必须以GPL发布修改过的内核。例如Google的Android平台需要修改内核,它在发布二进制映像时就必须发布所修改内核的源代码。当然,Google发布的内核代码只是基于模拟器(QEMU)的内核版本,没有什么参考价值。
关于Linux上的驱动程序模块(需要装载到内核运行)是否要遵守GPL,以前有争议,现在的说法是只要该模块仅使用公开的内核接口,就可以不按照GPL发布。一般而言,GPL不适合于商业软件。除非厂家在用GPL发布软件的同时还能找到盈利模式。确实有不少公司做到了,软件不收费,但服务是收费的。
1.2.2 LGPL
LGPL比GPL友好。我们可以在自己的程序不加修改地引用LGPL程序,只要保留版权声明,还可以将该程序作为私有软件发布。但如果我们修改并引用LGPL程序,我们就不能按照私有软件发布程序,必须遵守LGPL的规定。
除了GPL、LGPL外,常用的许可证还有BSD、MIT、Apache许可证。例如:Google的Android使用Apache许可证。BSD、MIT、Apache许可证都是对商业应用友好的许可证。