1_科普—什么是GNU?什么是GPL协议?GNU和Linux是怎么结合在一起的?

简介: 1_科普—什么是GNU?什么是GPL协议?GNU和Linux是怎么结合在一起的?

一、GNU


GNU是在1983年由理查德·马修斯托曼提出的一个项目计划,目标是提供一个和Unix100%兼容的自由软件的操作系统。这个系统的名字叫GNU,是GNU’s Not Unix的首字母递归缩写—这是对Unix的技术思想致敬的一种方法,同时表达GNU有所不同。从技术上说,GNU很像Unix。但是它不同于Unix,GNU给予其用户自由。


二、GPL协议


GPL(General Public License)协议是指GNU通用公共许可证。任何软件发布,都需要许可证,GNU认为任何软件都应当以自由软件发布。要让一个软件成为自由软件,就需要把它以自由软件许可证发布。我们通常使用GNU通用公共许可证GNU GPL发布软件。


简单地说,GPL授权具有以下几个特点:


1.任何软件挂上GPL授权之后,即为自由的软件,任何人均可获取,同时,亦可取得其源代码;

2.取得GPL授权的软件后,任何人均可修改源代码,以使其符合自己的喜好;

3.除此之外,经过修改的源代码应回报给网络社会,供大家参考!


注意:并非挂上GPL之后的软件就不可贩卖,这是不同的两回事!


三、GNU和Linux是怎么结合在一起的呢?


1991年,林纳斯·托瓦兹编写出了与UNIX兼容的Linux操作系统内核并以GPL授权发布。Linux之后在网上广泛流传,许多程序员参与了开发与修改。


1992年,Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux“或简称Linux。


四、Linux是什么?


严格来说,Linux只是一个操作系统内核。大多数Linux发行版是由操作系统内核加上GNU的软件或工具形成完整的操作系统,也就是GNU/Linux。GNU/Linux是一种Unix Like操作系统。


五、Linux发行版本


Linux发行版指的就是通常所说的“Linux操作系统",它可能是由一个组织,公司或者个人发布的。


通常来讲,一个Linux发行版包括Linux内核,各种GNU软件,及其他的一些自由软件。在一些特定的Linux发行版中也有一些专有软件。


发行版为许多不同的目的而制作,包括对不同计算机硬件结构的支持,对一个具体区域或语言的本地化,实时应用,和嵌入式系统。目前,数百个Linux发行版被积极的开发,被广泛应用的发行版有:·····


Ubuntu


Redhat


Fedora


openSUSE


Linux Mint


Debian


Manjaro


Mageia


CentOS


Arch


六、内核


**内核(kernel)**是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。


内核源码网址:http://www.kernel.org


自由软件意味着使用者有运行、复制、发布、研究、修改和改进该软件的自由。


操作系统=内核(内核空间)+应用程序(用户空间)


目录
相关文章
|
10天前
|
存储 网络协议 Ubuntu
【Linux开发实战指南】基于UDP协议的即时聊天室:快速构建登陆、聊天与退出功能
UDP 是一种无连接的、不可靠的传输层协议,位于IP协议之上。它提供了最基本的数据传输服务,不保证数据包的顺序、可靠到达或无重复。与TCP(传输控制协议)相比,UDP具有较低的传输延迟,因为省去了建立连接和确认接收等过程,适用于对实时性要求较高、但能容忍一定数据丢失的场景,如在线视频、语音通话、DNS查询等。 链表 链表是一种动态数据结构,用于存储一系列元素(节点),每个节点包含数据字段和指向下一个节点的引用(指针)。链表分为单向链表、双向链表和循环链表等类型。与数组相比,链表在插入和删除操作上更为高效,因为它不需要移动元素,只需修改节点间的指针即可。但访问链表中的元素不如数组直接,通常需要从
|
12天前
|
网络协议 Linux 分布式数据库
【Linux】DNS系统,ICMP协议,NAPT技术详解
NAPT(Network Address Port Translation),也被称为端口地址转换,是一种NAT(网络地址转换)的形式。NAPT允许多个设备在内部网络上使用私有IP地址,并通过单个公共IP地址与外部网络进行通信。NAPT通过改变传输层的端口号来实现这一点,从而允许多个内部设备共享同一个公共IP地址。
19 0
|
17天前
|
监控 Unix Shell
探秘GNU/Linux Shell:命令行的魔法世界
探秘GNU/Linux Shell:命令行的魔法世界
20 0
|
2月前
|
Linux C语言
|
2月前
|
缓存 安全 Linux
【探索Linux】P.33(HTTP协议)
【探索Linux】P.33(HTTP协议)
49 7
|
1月前
|
Linux Unix 程序员
02. 【Linux教程】GNU 项目简介
02. 【Linux教程】GNU 项目简介
22 0
|
2月前
|
JSON Linux 数据格式
【探索Linux】P.32(自定义协议)
【探索Linux】P.32(自定义协议)
38 4
|
2月前
|
JSON 安全 网络协议
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
|
2月前
|
网络协议 算法 Linux
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
【探索Linux】P.27(网络编程套接字 —— UDP协议介绍 | TCP协议介绍 | UDP 和 TCP 的异同)
38 0
|
2月前
|
Linux 网络安全
Linux NFS协议详解
Linux NFS协议详解
149 5