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

这篇具有很好参考价值的文章主要介绍了开源的协议(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协议。文章来源地址https://www.toymoban.com/news/detail-736099.html

到了这里,关于开源的协议(GPL和MIT的区别)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 调用GPL 开源库的法律问题

    调用 GPL(General Public License)开源库通常是合法的,但是需要遵守 GPL 协议的规定。使用 GPL 开源库可能会涉及到一些问题,以下是一些你可能需要考虑的方面: 遵守 GPL 协议 : 使用 GPL 开源库时,你需要遵守 GPL 协议的规定。这包括在你的项目中使用 GPL 开源库时,必须将你

    2024年03月11日
    浏览(46)
  • MIT Cheetah开源代码仿真环境搭建

    参考文章:长乐未央https://zhuanlan.zhihu.com/p/537013183 电脑系统:Ubuntu18.04 ROS版本: ROS Melodic 首先更新一下 安装依赖项 首先是QT5.14.2,下载地址友情链接:QT5.14.2 下载完成后选中下载的QT5文件,右键点击属性,点击权限,勾选允许作为程序执行文件,如下图所示: 然后在该文件

    2023年04月17日
    浏览(45)
  • MIT Cheetah-Software开源项目流程分析

    摘要:MIT Cheetah-Software是四足机器人的开源项目,理清程序流程是进一步理解和研究项目的必要条件。Cheetah-Software开源项目包含robot、common、sim和user等四个部分的源码,本文以user/MIT_Controller下的子项目来介绍Cheetah-Software的程序流程。         主函数定义在main.cpp文件中,源

    2024年02月02日
    浏览(36)
  • 开源许可证概述:GNU, BSD, Apache, MPL, 和 MIT

    开源许可证是开源软件分发的基础。它们定义了使用者如何使用,修改,分发开源软件。在这篇文章中,我们将探讨五种常见的开源许可证:GNU通用公共许可证 (GNU GPL),BSD许可证,Apache许可证,Mozilla公共许可证 (MPL) 和麻省理工学院许可证 (MIT)。我们将给出每种许可证的一些

    2024年02月09日
    浏览(59)
  • 1.3、开源软件、开源协议

    关注公众号 “融码一生”,领取全套 PDF / 电子书 Linux 是一款开源软件,可以随意浏览和修改它的源代码。Linux 本身就是开源精神的受益者,它几乎是全球最大的开源软件。 开源软件就是把软件程序与源代码文件一起打包提供给用户,用户既可以不受限制地使用该软件的全部

    2024年04月27日
    浏览(38)
  • Linux内核的 EXPORT_SYMBOL 和 EXPORT_SYMBOL_GPL 的作用

    在一个模块中使用 EXPORT_SYMBOL(name)。name 表示函数或者变量等符号,它是对全部内核代码公开的,因此在您的内核模块中可以直接调用 name, 即使用 EXPORT_SYMBOL 可以将一个函数以符号的方式导出给其他模块使用 。 这里要和 System.map 做一下对比: System.map 中的是连接时的函数地

    2024年02月04日
    浏览(40)
  • TCP协议与UDP协议的区别

    目录 前言 一、TCP协议  1、TCP协议首部组成 2、TCP三次握手和四次挥手 2、1 三次握手 2、2 四次挥手  3、代码实现 二、UDP协议 1、UDP特点   2、首部格式  3、代码实现 三、TCP和UDP的区别          在我们的OSI七层模型或者是四层模型中,我们的传输层始终保持不变,传输

    2023年04月09日
    浏览(38)
  • 什么是HTTPS协议?与HTTP协议区别?

    HTTP协议(超文本传输协议)是一种用于在计算机网络上传输超文本的应用层协议。它是一种客户端-服务器协议,允许客户端通过Web浏览器等方式向服务器发送请求,服务器则返回响应。HTTP协议是构建万维网(WWW)的基础之一,被广泛用于在Web浏览器和Web服务器之间传输HTM

    2024年02月10日
    浏览(60)
  • Websocket协议-http协议-tcp协议区别和相同点

    通讯形式 单工通讯-数据只能单向传送一方来发送数据,另一方来接收数据 半双工通讯-数据能双向传送但不能同时双向传送 全双工通讯-数据能够同时双向传送和接受 注:http的通讯方式是分版本 http1.0 :单工。因为是短连接,客户端发起请求之后,服务端处理完请求并收到

    2024年02月15日
    浏览(54)
  • 开源软件合规风险与开源协议的法律效力

     更多内容:​​​​​​OWASP TOP 10 之敏感数据泄露 OWASP TOP 10 之失效的访问控制 ​​​​​​OWASP TOP 10 之失效的身份认证 一、开源软件主要合规风险 1、版权侵权风险 没有履行开源许可证规定的协议导致的版权侵权,例如没有按照许可要求的保留版权声明等。 2、商业机密

    2024年01月19日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包