常见的开源协议
2016-06-11 本文已影响148人
AcuspXu
刚接触到开源项目时大家都会看到各种软件开源协议,但由于开源协议的数量很多,我们很少对它们有深入的了解。
下面这张图就对常用的软件协议进行一下总结,方便大家选择。图片修改自PAUL MILLER
![](https://img.haomeiwen.com/i1833201/7766fca6c631b8b1.jpg)
GPL(GNU General Public License)
只要你用了任何该协议的库、甚至是一段代码,那么你的整个程序,不管以何种方式链接,都必须全部使用GPL协议、并遵循该协议开源。商业软件公司一般禁用GPL代码,但可以使用GPL的可执行文件和应用程序。
采用GPL授权的软件有:Linux、MySQL等。
LGPL(Lesser GPL)
是GPL针对动态链接库放松要求了的版本,即允许非LGPL的代码动态链接到LGPL的模块。注意:不可以静态链接,否则你的代码也必须用LGPL协议开源。
采用LGPL的软件有:JBoss、Hibernate、FCKeditor等。
APL(apache Licence)
修改版本必须保持其原始版权声明;修改过的文件要标明改动。
采用APL的软件有Hadoop、Apache HttpServer等。
BSD(Berkeley Software Distribution)
BSD2:修改版本必须保持其原始版权声明。
BSD3:修改版本必须保持其原始版权声明。未经许可不得使用原作者或公司的名字做宣传。
采用BSD协议的软件有:nginx
MIT(Massachusetts Institute of Technology)
修改版本必须保持其原始版权声明。
采用MIT的软件有:jquery、Node.js