23 July 2013

开源软件的协议可以分为如下两个阵营:

一,方便商业使用的,包括Apache Software License(ASL)、BSD和MIT等几种。采用这些协议的代码并不要求使用者也开源,而且允许使用者进行任意修改和分发。它们最多要求声明一下你的这些使用或修改行为,不要偷偷摸摸用即可。

二,基本无法商业使用的,主要是GPL协议。这类协议有时被称为Copyleft协议,它们反对版权,是开源思想的主要体现者。采用这一协议的代码,对它的任何修改都必须公开;使用这些代码的项目也必须开源,而且使用这些代码的项目也必须采用同样的GPL协议。

我们可以从现有一些项目所选择的协议体会出二者的区别。很多为了推广其商业应用的项目都会选择采用第一类,例如,Apache Server、Android都采用的Apache协议。那些由开源社区开发的项目则大多采用第二类协议,例如Linux、GCC、FFMpeg等。