这个问题很简单,但答案却引发了Linux世界几十年来一直存在的争议。
什么是 GNU/Linux?
GNU/Linux是一个给自由开源操作系统的名称,我们通常称之为”Linux”。
当用来指代通用操作系统时,“GNU/Linux”和“Linux”这两个术语是可以互换使用的。但是,创建一个完全功能的操作系统需要许多不同的组成部分。可以说,在GNU/Linux中,GNU的部分比Linux更多,这就是为什么如何称呼这个操作系统并不像听起来那么简单的原因。
GNU/Linux 中的“GNU”是什么?
让我们回到20世纪80年代,当时的计算机行业正处于一个转型时期。一场涉及苹果公司的最高法院案件判决,二进制程序(与源代码不同,可直接执行的软件)可以受到版权保护。几年后,微软发布了Windows操作系统,这改变了人们与软件互动的方式。
在软件开始受到版权保护并以商业利益为目标之前,大多数软件主要由研究人员和学者使用。计算机代码是公开共享的,人们可以自由地使用这些程序。然而,随着各种限制的出现,以前可以自由进行的行为变得违法了。
于是形成了一个名为自由软件运动的组织。在1983年,理查德·斯托曼(Richard Stallman)宣布了一个计划,要创建一个完全非专有的兼容Unix的操作系统。他称之为GNU项目,并且该宣布仍然可以在GNU.org上找到。
GNU是一个递归缩略语,代表“GNU’s Not Unix”。GNU项目提供了许多现在自由桌面所依赖的重要工具。80年代创造的关键工具包括GCC(用于编译C语言的工具)、功能强大的Emacs文本编辑器、Bash以及仍在使用的各种命令行实用程序。
GNU项目包含许多广泛使用的应用程序,如GIMP(GNU图像处理程序)和GNOME,这是最受欢迎的自由桌面环境之一。无论您使用哪个Linux操作系统,您可能都依赖于GNU软件的许多组件。
GNU项目还负责制定了通用公共许可证(General Public License,GPL)。正是这个许可证在多年间保持了我们使用的大部分自由软件的自由性。
GNU/Linux中的“Linux”是什么?
Linux诞生于1991年。这个项目始于一位赫尔辛基大学的学生,他开始独立开发自己的操作系统内核。他的名字叫Linus Torvalds。
当时,GNU项目已经创建了很多构建一个完整免费操作系统所需的组件,但还缺少一些关键部分。这些部分包括硬件驱动程序、守护进程和一个可工作的内核。这些组件使得软件能够与硬件进行通信。
GNU Hurd,GNU项目尝试开发的内核,在此之前已经开始开发,但还没有准备好。另外一个叫做MINIX的内核自1987年起就存在,但它只被授权用于教育目的。
在受挫之后,Torvalds决定自己制作一个内核。他将这个个人项目称为Linux,将自己的名字和UNIX结合起来,但他认为这样做太自大而不适合公开分享。于是,他将项目命名为Freax,结合了“free”(自由)、“freak”(怪异)和“UNIX”。一位同事不喜欢这个名字,更喜欢Linux。Linus同意了,这个名字就保留下来了。
起初,这个内核并不是免费的,但在1992年,Linus将Linux授权为GPL(GNU通用公共许可证),这是GNU项目创建的一种强制版权协议。这个决定对项目的成功起到了很大作用。许多人选择采用Linux并为其开发做出贡献,而不是创建竞争性的内核。
我们使用的是Linux还是GNU?
凭借GNU工具和一个功能齐备的Linux内核,我们现在拥有一个工作正常的免费操作系统。但是我们应该如何称呼它呢?从早期开始,许多人将使用Linux内核的操作系统简单地称为”Linux”。这引发了一些紧张局势,因为Linux并不代表我们在说Linux时所想象的大部分内容。
再次强调,Linux内核是使软件和硬件能够相互通信的具体部分。而我们在屏幕上看到的一切呢?那是其他东西。
理想状态的GNOME桌面操作系统 Richard Stallman最初提议将这样的创作称为基于Linux的GNU系统。然后他改变了偏好,提出了GNU/Linux(发音为”GNU slash Linux”或”GNU plus Linux”),以便清楚地表明两个项目都发挥了重要作用。一些人接受了这个观点,而其他人则认为这个名字既笨拙又没有必要。这种分歧一直持续至今。
为何要说”GNU/Linux”
从一开始,GNU项目的目的就是开发一个完整的操作系统。内核只是这个拼图中缺失的一部分。Torvalds的目标并不是创建一个操作系统,而是提供那个缺失的部分。
- Linux对于你在屏幕上看到任何东西都至关重要,但它与你实际看到的内容几乎没有任何关系。这主要取决于你的桌面环境。
- GNU也负责在后台处理很多事情。即使你不安装图形用户界面,你仍然会与GNU的一部分命令行工具(例如Bash本身)进行交互。
- 没有GNU工具,我们所认为的Linux就不再像Linux了。尽管Android使用了Linux内核,但它并不像Linux那样。这主要是因为它缺少了GNU的工具链。
- “Linux”的截图与基于BSD的自由桌面操作系统的截图没有任何区别。虽然Linux内核看不见,但各种开源的基于BSD的操作系统提供了与桌面Linux几乎相同的体验。
- 这并不是我们给其他操作系统命名的方式。当我们想到Windows时,通常会想到界面,很少有人立即想到Windows内核。如果有人能在Linux内核上运行Windows界面和所有的Windows应用程序,他们很可能仍然认为那是Windows。
- 将整个生态系统称为Linux会引起混淆。有时候Torvalds会被认为是创造整个操作系统的人,尽管他只是创建了其中的一个特定部分。
- GNU对自由桌面的文化和许可证承担了很大的责任。GNU项目不仅提供了构建自由操作系统所需的工具,还提供了法律框架。GPL阻止人们将自由代码用于创建竞争性专有软件。许多核心工具,包括Linux本身,都是在一个共享版权许可下发布的,加速了它们的采用并为自由软件社区今天的文化奠定了基础。
使用”Linux”的原因
有强有力的理由认为GNU/Linux是一个更准确、更精确的名称。但它是否是一个好的名称呢?以下是人们支持将操作系统称为”Linux”的一些论点。这个列表可能更短,但或许更有说服力。
- Linux已经更加流行。这在90年代就是如此,而今天仍然如此。将操作系统称为其他名称将感觉像是有意的重新品牌努力。这是因为Linux使人们能够运行GNU项目和其他项目创建的所有软件。没有Linux,你将无法使用任何东西。
- GNU/Linux是一个笨拙的名称。它阅读起来很尴尬,说起来更加笨拙。单凭这个原因就足以让一些人认为Linux不是一个公平的名称,所以他们不愿称操作系统为其他任何名称。
- 我们何时停下来?如果我们给予GNU以认可,我们难道不应该给予X或Wayland以认可吗?它们是大多数自由桌面生态系统所依赖的显示服务器。音频也很重要。桌面环境也很重要。不久之后,我们将把我们的桌面称为GNOME/PipeWire/Wayland/GNU/Linux。
Linus本人曾经争辩说,将Linux称为GNU/Linux简直是荒谬的。
你更喜欢GNU/Linux还是Linux? 我不是GNU/Linux的粉丝,但说一台笔记本电脑运行GNU而不是Linux确实更清晰。随着Android和Chromebook的兴起,使用Linux这个名称已经变得越来越不足够了。一个程序在Linux上可用并不意味着它能在Android上运行,反之亦然。
随着信息娱乐系统、智能家居产品、可穿戴设备和其他电子产品继续采用Linux内核,情况变得更加复杂。