各种类自由软件的许可证释义
就我个人理解,从私有软件(即我们平常所说的封闭源码软件)
到GNU所倡导的自由软件之间有许多中间地带,这一方面是一个
现实存在的现象,同时也是由软件复杂多样性密不可分的。下面
就我所知总结一些种类软件的许可证协议,希望大家多多指正。
GPL: 我感觉GPL协议与后面要提到的各种许可证协议最重要的区
别,也是GPL的最大特点就是要求所有对GPL软件的更改必须
仍然遵循GPL许可证,不可以将GPL的软件更改后变成某些
人的私有软件,GPL软件也不能与其他非GPL的软件融合成
一个转有软件。简单的说就是你沾了GPL的边就一定还要
GPL。
LGPL:LGPL作为一个库,他允许所有使用这个库的软件是非GPL的,
就是说你可以用MiniGUI制作你想作为商品出售的私有软件。
BSD: BSD许可证协议比GPL要宽容的多,但是要求你的软件在用到
BSD的代码时,必须明确著名原创者的信息。
X: 就是X Windows所采用的一种许可证协议,这个协议允许你
去更改原来的软件,并可不公布源码,并不再采用原来软件
的X协议,而以你自己的方式去出售或干别的什么事。这就
是为什么有许多针对特定硬件和系统设计的专有但是性能更
好的X窗口系统的缘故。
Perl:就是大家熟知的Perl语言软件包所采用的协议,这个协议
的最大特点就是禁止销售,不允许你去卖Perl这个软件。
MPL: 大家熟知的Netscape就是采用这个许可证协议,他的重要
核心思想就是原创单位享有特权,新更改的代码及补丁必
须由原创者才由资格发行。这也许是为什么Netscape没有
在公开源码后取胜的原因之一吧。
QT: 大家熟知的Linux的桌面环境KDE就是采用QT包制作的,而QT
包本身遵循的是QT协议,而不是GPL,所以才有了GPL阵营
的GNOME与KDE竞争的事。QT许可证协议的最大特点就是采用
QT协议的软件可以有公开和非公开两个版本,一般来说非公
开的版本由于获得了开发者和投资者的更大关注而性能更稳
定。而且即使事开放源代码的版本,对这些版本的修改与改
进也只能以补丁的形式发布,而不能自己独立发布,就象现
在有多种Linux发行版那样,在QT许可证里是不允许的。
就我个人理解,分析一种许可证协议,特别是类自由软件的许可证
协议时需要抓住下面四点来看:
1。该许可证是否可以与非开放的软件相结合。
2。该许可证的软件是否允许他人更改,更改后的结果是否需要反馈
给原创单位。
3。该许可证的软件可否由不同的发行商发布。
4。该许可证软件的原创者是否拥有特权。