共计 1537 个字符,预计需要花费 4 分钟才能阅读完成。
让咱们来讨论一下什么是 Linux 发行版,为什么它被称为发行版 distribution(或简称 distro),以及,它与 Linux 内核有什么不同。你还会理解到为什么有些人坚称 Linux 为 GNU/Linux。
什么是 Linux 发行版?
Linux 发行版是一个由 Linux 内核、GNU 工具、附加软件和软件包管理器组成的操作系统,它也可能包含显示服务器和桌面环境,以用作惯例的桌面操作系统。
这个术语之所以是“Linux 发行版”,是因为像 Debian、Ubuntu 这样的机构“发行”了 Linux 内核以及所有必要的软件及实用程序(如网络管理器、软件包管理器、桌面环境等),使其能够作为一个操作系统应用。
你的发行版还负责提供更新来保护其内核和其余实用程序。
所以,“Linux”是内核,而“Linux 发行版”是操作系统。这就是为什么它们有时也被称为基于 Linux 的操作系统的起因。
如果不是很了解以上所有的内容,不要放心。上面我将具体解释一下。
“Linux 只是一个内核,不是一个操作系统。”这是什么意思?
你可能看到到过这句话,这说的没错。内核是一个操作系统的外围,它靠近于具体硬件。你应用应用程序和 shell 与它交互。
为了了解这一点,我就用我在《什么是 Linux 的具体指南》中曾用过的那个比喻。把操作系统看成车辆,把内核看成引擎。你不能间接驱动引擎。同样,你也不能间接应用内核。
一个 Linux 发行版能够看作是一个汽车制造商(比方丰田或福特)为你提供的现成的汽车,就像 Ubuntu 或 Fedora 发行版的发行商为你提供的一个基于 Linux 的现成操作系统一样。
什么是 GNU/Linux?
让咱们再来看看这张图片。1991 年的时候,Linus Torvalds 发明的只是其中的最内圈,即 Linux 内核。
要应用 Linux,即便是以最原始的模式,甚至没有 GUI,你也须要一个 shell。最常见的是 Bash shell。
而后,你须要在 shell 中运行一些命令来实现一些工作。你能记起一些根本的 Linux 命令吗?比方 cat、cp、mv、grep、find、diff、gzip 等等。
严格来说,这些所谓的“Linux 命令”并不是只属于 Linux。它们中的很多都来源于 UNIX 操作系统。
在 Linux 诞生之前,Richard Stallman 就曾经在 1983 年创立了自由软件我的项目 free software project 中的第一个我的项目:GNU(GNU 是“GNU is Not Unix”的递归缩写)。GNU 我的项目实现了许多风行的 Unix 实用程序,如 cat、grep、awk、shell(bash),同时还开发了本人的编译器(GCC)和编辑器(Emacs)。
在 80 年代,UNIX 是专有软件,而且超级低廉。这就是为什么 Linus Torvalds 开发了一个相似 UNIX 的新内核的起因。为了与 Linux 内核进行交互,Linus Torvalds 应用了 GNU 工具,这些工具在其 GPL 开源许可证下是收费的。
有了这些 GNU 工具,它的行为也像 UNIX 一样。这就是为什么 Linux 也被称为类 UNIX 操作系统的起因。
你无奈设想没有 shell 和所有这些命令的 Linux。因为 Linux 与 GNU 工具集成得很深,简直是齐全依赖于 GNU 工具,所以纯正主义者要求 GNU 应该失去应有的认可,这就是为什么他们坚称它为 GNU Linux(写成 GNU/Linux)。
总结
那么,该用哪个术语?Linux、GNU/Linux、Linux 发行版,基于 Linux 的操作系统还是类 UNIX 操作系统?这取决于你的上下文。我曾经为你提供了足够的细节,让你对这些相干的术语有更好的了解。
我心愿你喜爱这个 Linux 黑话解释系列,并能学习到新的货色。欢送你的反馈和倡议。