一、 了解几种常见的开源协议
GPL、BSD、MIT、Apache和LGPL
(宽松程度:MIT > BSD > Apache > LGPL > GPL)
二、 名词解释
(1)GNU(革奴计划)
GNU 是 GNU is Not Unix的缩写,
是由Richard Stallman在1983年9月27日公开发起的,当时其目标是希望创建一套完全自由的操作系统,来代替当时的闭源商业操作系统Unix。GNU代表了自由软件运动。
(2) GPL (General Public License,GNU通用公共许可协议)
A. GPL最初由理查德·斯托曼(Richard Matthrew Stallman)为GNU计划而撰写,是一个广泛被使用的自由软件许可协议条款。
B. 协议主要内容:
只要在一个软件中使用GPL 协议的产品,则该软件产品必须也采用GPL协议,既必须也是开源和免费。
解释:
GPL不允许修改后或衍生的代码作为闭源的商业软件进行发布销售。
我们熟悉的Linux就是使用的GPL协议,所以我们能用到各种免费的linux发行版。
(3) LGPL (GNU宽通用公共许可证)
协议主要内容:
和GPL协议不同,LGPL允许商业软件引用采用LGPL协议的代码,而不需要开源商业软件。
但是如果修改了LGPL协议的代码,所有修改的代码和衍生的代码都必须采用LGPL协议。
解释:
LGPL协议的开源代码很适合作为第三方类库被商业软件引用,
但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。
(4) MIT许可证
MIT是最宽松的软件许可协议,作者只想保留版权,而无任何其他限制。
(5) BSD开源协议
跟其他协议相比,BSD也是相对宽松的软件许可协议。基本上可以“为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。
(6)Apache协议
Apache与BSD类似,不过如果你修改了代码,需要在被修改的文件中说明,
在延伸的代码中需要带有原来代码中的协议,商标,专利声明和其他原来作者规定需要包含的说明。