Linux 并不是一个操作系统
今天跟大家分享一个大多数 Linux 系统使用者可能平常并不关心的一件事情。
准确来说,我们今天经常说的 Linux 系统,应该称之为 GNU/Linux 操作系统。
Linux 只是一个操作系统内核。
GNU 则提供了除内核之外大量的系统组件和软件。
一个完整的操作系统,除了内核之外,还应该包含能够让用户,或者应用程序使用系统的工具和组件。
GNU 是什么?
GNU 的全称是 Gnu's Not Unix,而缩写其实是一个递归式的表达,浓浓的代码感,非常有趣。中文的翻译是“革奴”。官方网站: https://www.gnu.org/
Unix 的阴影
1980 年代,世界上占据主导地位操作系统是 Unix。而 Unix 系统已经商业化了,它的所有权归 AT&T 公司所有。其它公司或个人想要使用 Unix 的话就得支付高昂的费用。当然,Unix 的源代码也没有公开。在这种情况下,为了打破 Unix 对操作系统的垄断,一个叫做 GNU 的计划应运而生。
GNU 的使命
GNU 计划是由 Richard Matthew Stallman (RMS)倡导发起的一个自由软件计划。此人是个大牛,大名鼎鼎的 GDB 就是出自他之手,另外 Emacs 和 GCC 编译器也是他主导开发的。GNU 计划的目标就是实现一个类 Unix(Unix-like)的操作系统,让所有人可以免费使用,并且开源。该计划也确实得到了全世界崇尚自由精神的程序员的呼应,也极大地推动了 GNU 计划的发展。假如你留意的话,会发现很多常用的应用都诞生于 GNU 计划。例如 ls 和 cat:
与 Linux 的关系
Linux 本身并不是 GNU 计划的一部分。GNU 最初也有自己的内核项目,叫做 Hurd。不过由于该项目困难重重,进展缓慢,直到 1991 年也没能开发完成“具有完备功能的系统内核”。而正好当时 22 岁的 Linus Torvalds 发布了与 Unix 兼容的 Linux 操作系统内核,并在互联网上广泛流传。所以 GNU 在征得 Linus 本人同意之后,就采用了 Linux 内核作为 GNU 的操作系统内核。因此,我们通常说的 Linux 系统实际上包含了 Linux 内核与其它自由软件项目中的 GNU 组件和软件。
1992 年 Linux 与其他 GNU 软件结合,完全自由的操作系统正式诞生,至此,GNU 计划基本完成。
因此我们今天在学习和使用各种 Linux 发行版时,或许是出于简便的原因,更多的可能是对这段历史不了解的原因,大家只是说 Linux 系统。然而,本着对历史负责的态度,以及 GNU 计划对推动整个计算机行业发展的贡献,我们不应该忽视甚至忘记 GNU。
目前很多主流的 Gnu/Linux 发行版已经或多或少违背了 GNU 的价值观,GNU 的官方网站还特意对这些发行版做了说明,以表明划清界限。比如 Ubuntu 之前就曾被曝出安装了 Amazon 的软件以收集用户数据,后来在 RMS 本人的强烈反对和来自用户的压力之下,Ubuntu 在后续版本移除了 Amazon 软件。纯净的 Gnu/Linux 发行版凤毛麟角,而且都很小众,不过希望大家能够支持一下这些系统,可以从自由的GNU/Linux发行版中找到它们。
评论