Linux必知词汇:开源软件协议

简介: Linux必知词汇:开源软件协议

开源协议(Open Source License),是指开源软件所遵循的许可协议,获得了开源软件的用户,需要在该协议的允许范围内对软件的源代码进行使用、修改和发行(包括以盈利为目的商业发行)。常见的开源协议如下:

  1. The MIT License
  2. The GNU General Public License v2
  3. The Apache License
  4. The GNU General Public License v3
  5. The BSD License
  6. The GNU Lesser General Public License
  7. The Mozilla Public License (MPL)
  8. The Eclipse Public License

意义与历史:
自由软件的英文为“free software”。在英文里“free”一词有“自由”、“免费”的双重含意,对于如何区分自由软件(拉丁语:libre)和免费软件(拉丁语:gratis),自由软件运动社区的创始人——理查德·斯托曼做出了以下的定义:“自由软件的重点在于自由权,而非价格。要了解其所代表的概念,你应该将“free”想成是“言论自由”一词中的含义,而不是“免费啤酒”一词中的含义。”自由软件代表用户可以自由地运行、拷贝、分发、学习、修改并改进该软件。自由软件的定义可以追溯至GNU宣言。

大部分自由软件都在互联网上自由发布,往往不收取任何费用。一些或是以离线实体的方式发行,有时会酌情收取的费用(例如:工本费和运输费),而人们可用任何价格来贩售这些软件。所以,自由软件也可以是商业软件:因为自由软件许可证并不限制贩卖软件或者提供商业服务,这些并没有违反例如GPL等自由软件许可证[13]。因此,“自由软件”是关乎自由的问题,与价格无关,软件如何定价并不影响它是否被归类为自由软件。

自由软件的定义:
自由软件基金会(FSF)对自由软件的定义首次于1989年发表。[14]这份定义后来被布鲁斯·裴伦斯(Bruce Perens)改写为《Debian自由软件指导方针》1516。

根据斯托曼和自由软件基金会(FSF)的定义,自由软件赋予用户四种自由:[17]

自由之零:不论目的为何,有使用该软件的自由。
自由之一:有研究该软件如何运作的自由,并且得以修改该软件来符合用户自身的需求。获取该软件之源码为达成此目的之前提。
自由之二:有重新散布该软件的自由,所以每个人都可以借由散布自由软件来敦亲睦邻。
自由之三:有改善再利用该软件的自由,并且可以发表修订后的版本供公众使用,如此一来,整个社群都可以受惠。如前项,获取该软件之源码为达成此目的之前提。
如果一软件的用户具有上述四种权利,则该软件得以被称之为“自由软件”。也就是说,用户必须能够自由地、以不收费或是收取合理的散布费用的方式、在任何时间再散布该软件的原版或是改写版,在任何地方给任何人使用。如果用户不必问任何人或是支付任何的许可费用从事这些行为,就表示其拥有自由软件所赋予的自由权利。

相关词:
Copyright
Coprleft
GPLv1
GPLv2
GPLv3

资料来源
1.https://zh.wikipedia.org/wiki/%E8%87%AA%E7%94%B1%E8%BD%AF%E4%BB%B6

目录
相关文章
|
3月前
|
传感器 网络协议 物联网
在Linux中搭建Mosquitto MQTT协议消息服务端并结合内网穿透工具实现公网访问
Mosquitto是一个开源的消息代理,它实现了MQTT协议版本3.1和3.1.1。它可以在不同的平台上运行,包括Windows、Linux、macOS等。mosquitto可以用于物联网、传感器、移动应用程序等场景,提供了一种轻量级的、可靠的、基于发布/订阅模式的消息传递机制。
|
7月前
|
安全 Linux 网络安全
Linux远程管理协议
(RFB、RDP、Telnet和SSH)是Linux的远程管理协议。提到远程管理,通常指的是远程管理服务器,而非个人计算机。个人计算机可以随时拿来用,服务器通常放置在机房中,用户无法直接接触到服务器硬件,只能采用远程管理的方式。远程管理,实际上就是计算机(服务器)之间通过网络进行数据传输(信息交换)的过程,与浏览器需要 HTTP 协议(超文本传输协议)浏览网页一样,远程管理同样需要远程管理协议的支持。 目前,常用的远程管理协议有以下 4 种: RDP(remote desktop protocol)协议:远程桌面协议,大部分 Windows 系统都默认支持此协议,Windows 系统中的远
47 0
|
1天前
|
Linux C语言
|
5天前
|
缓存 安全 Linux
【探索Linux】P.33(HTTP协议)
【探索Linux】P.33(HTTP协议)
30 7
|
5天前
|
JSON Linux 数据格式
【探索Linux】P.32(自定义协议)
【探索Linux】P.32(自定义协议)
21 4
|
5天前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
14 0
|
2月前
|
Linux 网络安全
Linux NFS协议详解
Linux NFS协议详解
38 5
|
4月前
|
网络协议 Linux C++
Linux C/C++ websocket协议与服务器实现
Linux C/C++ websocket协议与服务器实现
77 0
|
4月前
|
存储 网络协议 Linux
Linux C/C++ 开发(学习笔记九 ):DNS协议与请求的实现
Linux C/C++ 开发(学习笔记九 ):DNS协议与请求的实现
67 0
|
5月前
|
网络协议 Linux 数据处理
Linux网络编程(各种协议模型的基础知识)
Linux网络编程(各种协议模型的基础知识)
47 0