很多 Linux 新手都搞不明白什么是 Linux,什么是 Linux 发行版,而又为什么被称为发行版(distribution 和 distro),以及它与 Linux 内核有什么不同。当然,还有一些老鸟一直坚持把 Linux 称为 GNU/Linux。本文系统极客就为大家一一解释。
什么是Linux发行版
Linux 发行版是由:Linux内核、GNU 工具、附加软件和软件包管理器组成的一整套完整操作系统,其也可能包括了显示服务器和 Linux 桌面环境,通常被运作于服务器或桌面操作系统来使用。
由于像 Debian、Ubuntu、RedHat 和 CentOS 等等这样的软件厂商或社区,对 Linux 内核以及所有必要的软件和实用程序(如:网络管理器、软件包管理器、桌面环境)进行了开发和打包封装,并以自有品牌或产品进行进行了实体「发行」,所以才有了相应产品的 Linux 发行版,而用户所使用的 Linux 发行版都将由其「发行」厂商或实体负责提供更新来维护内核和其他实用程序。
所以,Linux 仅是内核,而 Linux 发行版是完整的操作系统,这也是发行版有时也被称为基于 Linux 的操作系统的根本原因。
Linux仅是一个内核,不是操作系统
你可能听过上述说法,其实这是完全正确的。内核是一个操作系统的核心,它接近于物理硬件,用户通过使用应用程序和 Shell 来与内核进行交互。
为了方便理解,我们可以将操作系统比喻成一辆汽车,将内核看作引擎。引擎没法单独运行,而汽车也不能没有引擎。
一个 Linux 发行版可以被看作是一家汽车制造商(的产品),比如丰田或福特,它为你提供了成品汽车,就像 Canonical 和 RedHat 公司为用户提供了 Ubuntu 和 RedHat Linux 这两种基于 Linux 的成品操作系统一个道理。
GNU/Linux名称的由来
Linux 之父 Linus Torvalds 在 1991 年创建只是 Linux 的内层核心圈子,即 Linux Kernel。
要使用 Linux,即使是最原始的形式(甚至没有 GUI)也需要一个 Shell,而最常见的便是 Bash Shell,用户需要在 Shell 中执行命令来完成一些工作。
从技术上讲,并非所有所谓的「Linux命令」都只属于 Linux,它们中的很多主要来源于 UNIX 操作系统。
除了服务器环境之外,如今的桌面用户不可能只操作 Shell,更需要必要的桌面环境和丰富的生产力应用,所以才有了形形色色的 Linux 发行版。
早在 Linux 诞生之前,Richard Stallman 就在 1983 年创建了自由软件项目中的第一个 GNU(GNU 是 Unix 的递归缩写)项目。GNU 项目实现了许多流行的 Unix 实用程序,如:cat、grep、awk、shell(bash),同时还开发了自己的编译器(GCC)和编辑器(Emacs)。
在 80 年代,UNIX 是专有的,而且价格超级昂贵。这由此 Linus Torvalds 才开发了一个类似 UNIX 的新内核。而为了与 Linux 内核进行交互,Linus 使用了 GNU 工具,这些工具在其开源 GPL 许可下是免费的。
使用了 GNU 工具,又与 UNIX 长得像兄弟,这就是为什么 Linux 也被称为类 UNIX 操作系统的直接原因。
由于 Linux 与 GNU 工具集成得很深,几乎依赖于 GNU 工具,所以纯粹主义者要求 GNU 应当得到应有的认可,才坚持称它为 GNU Linux(写成GNU/Linux)。