在自由软件所使用的各种许可证之中,最为人们注意的也许是通用性公开许可证(General Public License,简称GPL)。

GPL同其它的自由软件许可证一样,许可社会公众享有:运行、复制软件的自由,发行传播软件的自由,获得软件源码的自由,改进软件并将自己作出的改进版本向社会发行传播的自由。 
GPL还规定:只要这种修改文本在整体上或者其某个部分来源于遵循GPL的程序,该修改文本的 整体就必须按照GPL流通,不仅该修改文本的源码必须向社会公开,而且对于这种修改文本的流通不准许附加修改者自己作出的限制。因此,一项遵循GPL流通 的程序不能同非自由的软件合并。GPL所表达的这种流通规则称为copyleft,表示与copyright(版权)的概念“相左”。

GPL协议最主要的几个原则:

1、确保软件自始至终都以开放源代码形式发布,保护开发成果不被窃取用作商业发售。任何一套软 件,只要其中使用了受 GPL 协议保护的第三方软件的源程序,并向非开发人员发布时,软件本身也就自动成为受 GPL 保护并且约束的实体。也就是说,此时它必须开放源代码。

2、GPL 大致就是一个左侧版权(Copyleft,或译为“反版权”、“版权属左”、“版权所无”、“版责”等)的体现。你可以去掉所有原作的版权 信息,只要你保持开源,并且随源代码、二进制版附上 GPL 的许可证就行,让后人可以很明确地得知此软件的授权信息。GPL 精髓就是,只要使软件在完整开源 的情况下,尽可能使使用者得到自由发挥的空间,使软件得到更快更好的发展。

3、无论软件以何种形式发布,都必须同时附上源代码。例如在 Web 上提供下载,就必须在二进制版本(如果有的话)下载的同一个页面,清楚地提供源代码下载的链接。如果以光盘形式发布,就必须同时附上源文件的光盘。

4、开发或维护遵循 GPL 协议开发的软件的公司或个人,可以对使用者收取一定的服务费用。但还是一句老话——必须无偿提供软件的完整源代码,不得将源代码与服务做捆绑或任何变相捆绑销售。

转载于:https://my.oschina.net/gal/blog/200216

详细介绍 GPL 协议相关推荐

  1. python gpl_详细介绍 GPL 协议

    在自由软件所使用的各种许可证之中,最为人们注意的也许是通用性公开许可证(General Public License,简称GPL). GPL同其它的自由软件许可证一样,许可社会公众享有:运行.复制软件 ...

  2. mysql eof_详细介绍mysql 协议的EOF包及解析

    git https://github.com/sea-boat/mysql-protocol 概况 mysql的EOF包用于标明查询结果的结尾. mysql通信报文结构类型名字描述int<3&g ...

  3. 详细介绍 LGPL 协议

    这是一份 GNU 较宽松公共许可证非正式的中文翻译.它不是自由软体基金会所发布,并且不能适用于使用 GNU LGPL 的软体 -- 只有 GNU LGPL 英文原文的版本才行.然而,我们希望这份翻译能 ...

  4. 详细介绍 MIT 协议

    MIT许可证之名源自麻省理工学院(Massachusetts Institute of Technology, MIT),又称「X条款」(X License)或「X11条款」(X11 License) ...

  5. mysql握手_详细介绍mysql 协议的服务端握手包及对其解析

    概况 mysql客户端登陆到mysql服务端需要一个交互的过程,这里先看服务端给客户端发送的初始握手包.如下,client通过socket连接到server指定的端口后,server将往client发 ...

  6. 【转】运输层TCP协议详细介绍

    [转]运输层TCP协议详细介绍 TCP是TCP/IP协议族中非常复杂的一个协议.它具有以下特点: 1:面向连接的运输层协议.在使用TCP协议之前,首先需要建立TCP连接.传送数据完毕后,必须释放已经建 ...

  7. http协议编程java_Java与Http协议的详细介绍

    搜索热词 Java与Http协议的详细介绍 引言 http(超文本传输协议)是一个基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式.HTTP协议的主要特点是: 1.支持客户/服务器 ...

  8. HTTP协议详细介绍~超详细

    下面是对HTTP的详细介绍,HTTP协议是应用最广泛的网络协议. 希望可以帮助到有需要的小伙伴 文章目录 HTTP是什么 HTTP协议历史与标准 HTTP请求与响应消息 HTTP的基本原理 基于HTT ...

  9. IPv6下DHCPv6协议(RFC3315)详细介绍

    DHCPv6 详细介绍 前言 一.基础部分 二.DHCPv6的进阶 1.相关术语/概念(Term) 2.几个相关的算法/规则 3.Message交换过程详述 4.基础的几个option介绍(RFC33 ...

最新文章

  1. linux终端terminal个性化配置(转)
  2. 建站初期关键字的定位
  3. 数据结构——树、二叉树、森林、哈夫曼树、字符串模式匹配
  4. kali锁屏后无法唤醒_面试官:说一下公平锁和非公平锁的区别?
  5. voinc vue实现级联选择
  6. 高德地图开发 怎么去除城市信息
  7. linux修改密码的几种方法
  8. vivox6android版本5.1,vivo X6 Plus的手机系统是什么?能升级安卓5.0吗?
  9. Metasploit应用举例
  10. 【Tensorlayer系列】深度强化学习之FrozenLake介绍及表格型Q学习求解
  11. 酷家乐的 Istio 与 Knative 实践
  12. 分布式渲染运行时3D引擎架构在Web端的应用: 秒开3D Web APP
  13. 学习笔记75—方差分析(主效应和交互效应)
  14. iphone科学计算器使用
  15. Ext.ux.form.SearchField 添加placeholder属性 2016年9月19日
  16. 正弦稳态电路的阻抗和功率
  17. 2.东软跨境电商数仓项目技术选型
  18. 对挣钱与財富等三个问题的思考
  19. 蓝牙连接的sco问题
  20. 银河麒麟操作系统开机进入grub提示符界面

热门文章

  1. 批量修改文件夹下所有文件的名称
  2. PLsql(PLSQL Developer)安装与配置
  3. DataBinding使用指南(一)DataBinding基本使用,双向绑定,ListView RecycleView使用
  4. C语言输出格式工整的日历——2乘6样式(详见本文)
  5. 隐藏控制台应用程序的窗口
  6. 关于QPS高并发,你了解多少?
  7. 用于期望视场中光导耦合的二元光栅的优化
  8. 生物基础-多组学联合分析
  9. 【个人博客】Astro 快速搭建个人博客
  10. python求100内五的倍数_100一百以内5的倍数有哪些