--- title: GNU&Linux 历史与发展 description: GNU&Linux 历史与发展 keywords: - GNU - Linux - 历史 - 发展 tags: - Linux/文化 - 技术/操作系统 author: 7Wate date: 2023-03-15 --- ## 概述 GNU/Linux 是一个开源操作系统和 IT 基础架构平台。Linux 内核由 Linus Torvalds 于 1991 年构思设计而成,最初这只是他的一项兴趣爱好。如今,GNU/Linux 不仅是公共互联网服务器上最常用的操作系统,还是速度排名前 500 的超级电脑上使用的唯一一款操作系统;同时,GNU/Linux 也广泛地运用在智能移动设备和嵌入式终端上。 GNU/Linux 也是自由软件和开放源代码软件发展中最著名的例子。只要遵循 GNU 通用公共许可证(GPL),任何个人和机构都可以自由地使用 GNU/Linux 的所有底层源代码,也可以自由地修改和再发布。大多数 GNU/Linux 系统还包括像提供 GUI 的 X Window 之类的程序。 如果提及 GNU/Linux 就不得不了解 **UNIX** 与 **GUN** 计划,以及它们之间是如何相爱相杀、互相成就的。 ## Unix 的诞生和演变 [UNIX](https://unix.org/)(非复用信息和计算机服务,Uniplexed Information and Computing Service,UnICS)操作系统,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由肯·汤普逊、丹尼斯·里奇和道格拉斯·麦克罗伊于 1969 年在 AT&T 的贝尔实验室开发。 目前它的**商标权由国际开放标准组织所拥有,只有符合单一 UNIX 规范的 UNIX 系统才能使用 UNIX 这个名称,否则只能称为类 UNIX(UNIX-like)。** 1965 年贝尔实验室计划要创建一套**多用户、多任务、多层次**(multi-user、multi-processor、multi-level)的 MULTICS 操作系统。贝尔实验室参与了这个操作系统的研发,但因为开发速度太慢,1969 年贝尔实验室决定退出这个计划。**贝尔实验室的工程师,肯·汤普逊和丹尼斯·里奇,在此时自行开发了 Unix**。 1974 年,汤普逊和里奇合作在 ACM 通信上发表了一篇关于 UNIX 的文章,这是 UNIX 第一次出现在贝尔实验室以外。此后 UNIX 被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。 在此后的 10 年,Unix 在学术机构和大型企业中得到了广泛的应用,当时的 UNIX 拥有者 **AT&T 公司以低廉甚至免费的许可将 Unix 源码授权给学术机构做研究或教学之用**,许多机构在此源码基础上加以扩展和改进,形成了所谓的“Unix 变种”,这些变种反过来也促进了 Unix 的发展,其中最著名的变种之一是由**加州大学柏克莱分校开发的伯克利软件套件(BSD)产品**。 后来 AT&T 意识到了 **Unix 的商业价值**,于 1983 年发布 Unix 第一个商业版本 System V。便**不再将 Unix 源码授权给学术机构**,并对之前的 Unix 及其变种声明了著作权权利。故开始了一场持久的著作权官司,直至 AT&T 将自己的 Unix 系统实验室卖掉。 新接手的 Novell 采取了一种比较开明的做法,允许柏克莱分校自由发布自己的 Unix 变种,但是前提是必须将来自于 AT&T 的代码完全删除,于是诞生了 4.4 BSD Lite 版,由于这个版本不存在法律问题,**4.4 BSD Lite 成为了现代柏克莱软件包的基础版本。**所以从这个角度上,4.4 BSD 又是所有自由版本 Unix 的基础, 后续 BSD 在发展中也逐渐派生出 3 个主要的分支:[FreeBSD](https://zh.wikipedia.org/wiki/FreeBSD)、[OpenBSD](https://zh.wikipedia.org/wiki/OpenBSD) 和 [NetBSD](https://zh.wikipedia.org/wiki/NetBSD)。 外部链接:[UNIX的完整历史](http://www.levenez.com/unix/) ![Unix_history-simple](https://static.7wate.com/img/2022/08/05/e52dd5d5baf26.svg) ## GNU 项目的历史和目标 1983 年,AT&T 发布了 Unix 最新版 system V,这是一个商业化版本,付费才能使用,并且不得传播源码。正是因为看到了 Unix 被商业化,所以 **1983 年 9 月 27 日由理查德·斯托曼在麻省理工学院公开发起 GNU 计划。** [GNU 计划](https://www.gnu.org/) 的基本目标和一贯目标是提供一个和 Unix 兼容的 100% 自由软件的操作系统。不是 95%、也不是 99.5%、而是 100% 自由。这个系统的名字叫 **GNU,是 GNU's Not Unix 的首字母递归缩写**——这是对 Unix 的技术思想致敬的一种方法,同时表达 GNU 有所不同。从技术上说,GNU 很像 Unix。但是它不同于 Unix,GNU 给予其用户自由。 1985 年,理查德·斯托曼创立了自由软件基金会来为 GNU 计划提供技术、法律以及财政支持。到了 1990 年,GNU 计划已经开发出的软件包括了一个功能强大的文字编辑器 Emacs、C 语言编译器 GCC 以及大部分 UNIX 系统的程序库和工具。**唯一依然没有完成的重要组件,就是操作系统的内核(称为 HURD)。** **1991 年,Linus Torvalds 编写出了与 UNIX 兼容的 Linux 操作系统内核并在 GPL 下发布。**GNU/Linux 之后在网上广泛流传。1992 年,Linux 与其他 GNU 软件结合,完全自由的操作系统正式诞生。许多程序员参与了 Linux 的开发与修改,也经常将 Linux 当成开发 GNU 计划软件的平台。该操作系统往往被称为“GNU/Linux”或简称 Linux。 **但 Linux 本身不属于 GNU 计划的一部分,GNU 计划自己的内核 Hurd 依然在开发中,目前已经发布 Beta 版本。** ## Linux 的诞生和发展 1991 年,Linus Torvalds 在赫尔辛基大学上学时,对操作系统很好奇。他对 MINIX 只允许在教育上使用很不满(在当时 MINIX 不允许被用作任何商业使用),于是他便开始写他自己的操作系统,这就是后来的 Linux 内核。 > Linus Torvalds 曾笑言:我要是知道有 BSD,那我就不开发 Linux 了。 [Linux](https://www.linux.org/) 的标志和吉祥物是一只名字叫做 Tux 的企鹅,标志的由来有一说是因为 Linus 在澳洲时曾被一座动物园里的企鹅咬了一口,便选择企鹅作为 Linux 的标志,但更容易被接受的说法是:**企鹅代表南极,而南极又是全世界所共有的一块陆地**。这也就代表 Linux 是所有人的 Linux。 1994 年 3 月,Linux1.0 版正式发布,Marc Ewing 成立 **Red Hat 软件公司**,成为最著名的 Linux 经销商之一。 今天由 Linus Torvalds 带领下,众多开发人员共同参与开发和维护 Linux 内核。理查德·斯托曼领导的自由软件基金会,继续提供大量支持 Linux 内核的 GNU 组件。一些个人和企业开发的第三方的非 GNU 组件也提供对 Linux 内核的支持,这些第三方组件包括大量的作品,有内核模块和用户应用程序和库等内容。 Linux 发行版指的就是通常所说的 **Linux 操作系统**,它一般是由一些组织、团体、公司或者个人制作并发行的。 Linux 内核主要作为 Linux 发行版的一部分而使用。通常来讲,一个 Linux 发行版包括 Linux 内核,以及将整个软件安装到电脑上的一套安装工具,还有各种 GNU 软件,和其他的一些自由软件,在一些 Linux 发行版中可能会包含一些专有软件。 发行版为许多不同的目的而制作,包括对不同电脑硬件结构的支持,对普通用户或开发者使用方式的调整,针对实时应用或嵌入式系统的开发等等。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十多个。较为**知名的有 Debian、Ubuntu、Fedora、CentOS、Arch Linux 和 openSUSE 等**。 ![Linux_Distribution_Timeline_Dec._2020](https://static.7wate.com/img/2022/08/05/681bed08d91c5.svg) ## GNU/Linux 的特点和优势 ### 跨平台的硬件支持 由于 Linux 的内核大部分是用 C 语言编写的,并采用了可移植的 Unix 标准应用程序接口,所以它支持如 i386、Alpha、AMD 和 Sparc 等系统平台,以及从个人电脑到大型主机,甚至包括智能移动设备和嵌入式设备在内的各种硬件。 外部链接:[开源操作系统比较](https://zh.wikipedia.org/wiki/%E5%BC%80%E6%BA%90%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%AF%94%E8%BE%83) #### 支持的平台 ![支持平台](https://static.7wate.com/img/2022/08/05/3ac589a4a9444.png) #### 支持的硬件 ![支持的硬件](https://static.7wate.com/img/2022/08/05/99141213ed014.png) #### 支持的网络 ![支持的网络](https://static.7wate.com/img/2022/08/05/0d5bf7fcba21d.png) #### 网络技术 ![网络技术](https://static.7wate.com/img/2022/08/05/9321661071d84.png) #### 支持的文件系统 ![支持的文件系统](https://static.7wate.com/img/2022/08/05/c5ab5a8d2f42d.png) #### 支持的文件系统特性 ![支持的文件系统特性](https://static.7wate.com/img/2022/08/05/8e7bf47cc06e2.png) #### 安全特性 ![安全特性](https://static.7wate.com/img/2022/08/05/b2398297dbecd.png) ### 低资源占用下良好的稳定性 Linux 内核的源代码是以标准规范位数的计算机来做的最佳化设计,既可确保其系统的稳定性,也能使在系统上运行的要求比 Windows 或 macOS 低。有些发行版适用于可追溯到 Pentium 系列的 CPU,另一些发行版则仅需要 1 GB 以下的 RAM。正因为 **Linux 的低资源占用和稳定**,才使得一些安装 Linux 的主机像 Unix 机一样常年不关而不曾宕机。 ### 高效的文件系统 **Linux 秉持了「一切皆文件」的 Unix 哲学**,几乎兼容了所有市面上主流的文件系统;它们不但可以对文件设置权限,实施完全的保护,而且可以达到「越用越整齐」,「越用碎片越少」;使用 Linux 完全不需要什么「管家」或者「大师」。 ### 可靠的安全性 Linux 系统的**核心代码是开源的,对用户完全透明**,这意味着你的 Linux 系统漏洞更少。同时,由于 Linux 有着各种各样的不同版本,这也提高了被攻击的难度。你可以在选择更新时通过签名检查进行严格的细粒度控制,大多数的发行版在系统更新时都默认强制安全检查。 此外,它采取了很多包括读写权限控制、带保护的子系统、审计跟踪、核心授权的安全措施,这为网络环境中的用户提供了安全保障。当一个病毒在 Linux 下被恶意发布,几个小时后所有的发行版都已经接种了疫苗。你可能很难找到那些每天都提供更新的单一主流操作系统,但是这样的 Linux 发行版却有很多。 ### 完善纯净的软件包管理机制 大部分 Linux 发行版都具有特定的软件包管理工具(类似于无需注册帐号的 App Store),具有易于安装,更新和卸载的特性;并起到了保护配置文件的作用,不需要处理依赖关系也不容易对系统造成污染。同时由于其开源的特点,相较 Windows 和 macOS 里你那些平时用不到却会在每次大版本升级后「卷土重来」的预置应用,在 Linux 里你可以**卸载一切不想安装在系统里的预置应用。** ### 随心所欲定制 UI 在 Linux 系统中,你可以对系统功能进行任意更改。 Linux 生态系统中的核心项目之一就是桌面环境——它是一些由基础的用户程序和可视化元素组成的一个集合,比如状态栏和启动器,这些元素构成了用户与计算机的一个交互界面。在 Linux 系统中,用户都可以随意更换他们喜欢的桌面环境。 ### 社区的支持 Linux 系统拥有一个团结且友好型的社区。由于 Linux 在桌面系统是一个相对小众的桌面操作系统,仅占有 3% 左右的市场份额,因此,Linux 社区更希望有更多的潜在用户加入进来。Linux 系统有很多的用户论坛,尤其是对新手比较友好的论坛,它包括非常丰富且全面的知识来帮助用户解决一些基本的系统问题。很多高级用户更倾向于定制 Linux 系统,因此那些 Linux 发行版都拥有非常非常详尽维基文档,以指导用户完成高级的系统应用项目。 ### 开源 因为开源的特性,多数 Linux 发行版都会去中心化在全球部署镜像,平时在 Windows 和 macOS 的更新下载不稳定?在 Linux 设置中更换为本地的镜像源便无须担心。