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

GPL协议强制代码开源,具有传染性,如Linux即采用此协议。LGPL比GPL更宽松,适合商业软件引用。MIT协议极为宽松,允许商业使用和修改,如Vue和Lua采用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

在这里插入图片描述
这个规则就是开源协议(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协议。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值