开源的协议(GPL和MIT的区别)

开源,是很多个人开发者选择的道路。

开源不仅能够帮助整个生态共同进步,也能够帮助个人开发者提升技术和名气,但是,开源的意思并不是没有规则,全部无条件的免费提供给别人用,必须要遵循一定的规则。

在这里插入图片描述
这个规则就是开源协议(Open Source License)。常用的只有5、6种,网络上的很多文章只是笼统的介绍,并没有说清楚这些协议的关键区别,以及每种协议对开发者的好处和限制。
为了帮助开发者区别这些协议,这篇文章对常见的GPL,MIT协议进行简单介绍

GPL-强制开源

GPL(GNU General Public License):GNU通用公共许可协议。
GPL协议的目的就是强制代码开源和免费使用。
其最大的特点就是“开源的传染性”。也就是说,假设某公司使用了具有GPL协议的代码库,那么他理论上也必须把自己的代码库开源。
注意,这里是理论上。

Linux采用了GPL。GPL协议和BSD,Apache,Licence等鼓励代码重用的许可很不一样。GPL的出发点是代码的开源/免费使用和引用/修改/衍生代码的开源/免费使用,但不允许修改后和衍生的代码做为闭源的商业软件发布和销售。这也就是为什么我们能用免费的各种Linux,包括商业公司的Linux和Linux上各种各样的由个人,组织,以及商业软件公司开发的免费软件了。

另外,大公司还会选择为自己维护一套闭源的商业代码。
比如最著名的AOSP (Android Open-Source Project) 和Android。
AOSP是开源的安卓系统,而Android这个词已经变成了谷歌的一个商标,以及附加了GMS等一些软件的大系统。
在这里插入图片描述
什么意思呢,我们认为开源的那套系统,实际上就像一个毛坯房,而真正附加了谷歌全家桶等软件的Android,是精装房,精装的部分是不开源的。

LGPL

LGPL是GPL的一个为主要为类库使用设计的开源协议。和GPL要求任何使用/修改/衍生之GPL类库的的软件必须采用GPL协议不同。LGPL允许商业软件通过类库引用(link)方式使用LGPL类库而不需要开源商业软件的代码。这使得采用LGPL协议的开源代码可以被商业软件作为类库引用并发布和销售。

但是如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生的代码都必须采用LGPL协议。因此LGPL协议的开源代码很适合作为第三方类库被商业软件引用,但不适合希望以LGPL协议代码为基础,通过修改和衍生的方式做二次开发的商业软件采用。

GPL/LGPL都保障原作者的知识产权,避免有人利用开源代码复制并开发类似的产品。

MIT-受公司欢迎的宽松协议

MIT(The Massachusetts Institute of TechnologyLicense,麻省理工学院许可协议)是众多协议条款中,被广泛使用的其中一种。与其他常见的软件许可协议相比,MIT是相对宽松的软件许可协议。
MIT协议允许你任意的使用、复制、修改原MIT代码库,随便你卖钱还是开源,唯一需要遵循的原则就是在你的软件中声明你也使用的是MIT协议就行了。
而很多的公司企业在选用开源产品的时候都首选MIT协议,因为可以完全控制这些第三方的代码,在必要的时候可以修改或者二次开发。
UI框架VUE、脚本语言Lua使用的就是MIT协议。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
开源许可协议是指授权软件使用者在软件的源代码可被公开查看、修改和分发的情况下,使用该软件的协议。以下是几种常见的开源许可协议及其区别: 1. GPL(GNU通用公共许可证):GPL是一种“强制性开源协议,要求任何使用、修改或分发GPL软件的人都必须使用相同的GPL协议发布他们的修改版本。因此,任何使用GPL软件的人都必须将他们的修改公开发布。这个要求使得GPL被认为是最严格的开源许可协议之一。 2. APL(Apache许可证):APL是一种“宽松型开源协议,允许使用、修改和分发软件的源代码和二进制文件,但要求保留原始版权和许可协议信息。与GPL不同,APL不要求使用相同的许可协议发布修改版本,因此允许商业应用。 3. BSD(Berkeley软件分发许可证):BSD是一种“宽松型开源协议,允许使用、修改和分发软件的源代码和二进制文件,但没有像APL一样要求保留原始版权和许可协议信息。BSD许可证允许商业使用和闭源版本的发布,因此在商业环境中非常流行。 4. LGPL(GNU库通用公共许可证):LGPLGPL的一个变种,在LGPL下发布的软件可以作为库被其他程序使用,而其他程序可以使用不同的许可协议。这意味着LGPL软件可以被商业程序使用,但如果修改了LGPL库,修改版本必须以LGPL发布。 5. MIT许可证:MIT是一种非常宽松的开源许可协议,允许使用、修改和分发软件的源代码和二进制文件,而且没有任何要求。MIT许可协议是最古老的开源许可协议之一,也是最受欢迎的开源许可协议之一。因此,它被广泛用于许多开源项目中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值