在开源的世界里,我们经常会看到各种许可证,本文就来简单介绍一下几种许可证的区别。
比如我现在开发了一个框架,我现在想把代码开源出来,这时我就要考虑使用哪种许可证进行开源。
每种许可证都会有一些限制,但是,开源并不等于没有版权,基本上每种许可证都要求,如果想要基于我的框架做二次开发,并开发出一个新的框架,那必须在新框架中进行版权申明,也就是写上我的名字,通常就是通过一个文件申明。
除此之外,几种许可证还有以下区别。
如果我想新框架不能闭源,必须开源,那我就可以选择:GPL许可证,或者LGPL许可证,或者Mozilla许可证。
在必须开源的前提下,如果我还想要求新框架也得和我使用同样的许可证,那就可以选择GPL许可证。
著名的Linux就是用的GPL许可证,所以所有Linux的衍生物都得使用GPL许可证,也必须得开源。
如果我觉得新框架可以闭源,可以不开源,可以商用,那就可以使用BSD许可证,或者MIT许可证,或者Apache许可证。
虽然可以商用,但是如果新框架中的某个文件是修改了我的文件,我希望必须在该文件中添加我的名字,比如:Copyright [yyyy] [name of copyright owner],那就可以使用Apache许可证。
如果我允许其他人修改我的文件,而且也可以不在文件中添加版权说明,但是我希望新框架在做广告营销时,不要使用我的名字进行营销,那就可以使用BSD许可证。
如果允许使用我的名字进行营销,那就可以使用MIT许可证。
所以,现在我要开源我的框架,如果我希望:
- 后续衍生品必须开源,那就用GPL许可证。
- 后续衍生品可以商用,但是不能用我的名字做推广,那就用BSD许可证,如果允许用的名字做推广,那就用MIT许可证。
- 后续衍生品可以商用,并且不能用我的名字做推广,但是新框架需要对修改部分进行申明,那就用Apache许可证。