Vor*_*rac 6 linux gnu distributions
所以 GNU/Linux 是一个操作系统,至少由几个程序组成:Linux kenel、gcc、gnu-binutils、Gnome desktop 等。
什么使 Linux 发行版成为 GNU?是编译内核的工具吗?是发行版附带的工具吗?
是否存在基于 Linux 但不基于 GNU 的全功能桌面操作系统?
Tho*_*man 12
在自由软件基金会认为,大多数Linux发行版的其实都是GNU系统,这发生在使用Linux内核。他们基于这样一个事实,即 GNU 是在 Linux 出现之前开发自由操作系统的长期项目,而内核只是最后一个缺失的部分。他们是对的,因为几乎所有基于 Linux 的桌面和服务器发行版都至少使用一些 GNU 组件,也许最重要的是GNU C 库(glibc)、GNU 核心实用程序(coreutils) 和Bash shell。此外,由于使用了 GCC 扩展,Linux 内核开发本质上与 GCC 相关联。
一些嵌入式系统,也许最著名的是 Google 的 Android,不使用任何 GNU 组件或库。例如,在 Android 中,GNU C 库被 Google 自己的、基于 BSD 的 Bionic C 库所取代。FSF 同意将此类系统称为“GNU 系统”或“GNU/Linux”是不合适的,但另一方面,他们也不希望将这些系统仅称为“Linux”系统。至少我们可以得出,有似乎是一个事实,即使用GNU工具来构建内核,并达成共识的结论不能使一个系统“GNU系统”。
GNU/Linux 术语的历史可以追溯到 1990 年代初期。
1991 年,Linus Torvalds 在赫尔辛基的卧室里开始了 Linux 内核项目。不久之后,在 Internet 兴起的帮助下,Linux 内核开始受到广泛关注。
Richard Stallman 的 GNU 项目当时仍计划使用 HURD 微内核作为计划中的 GNU 操作系统的内核。然而,当 Linux 发行版(基于 Linux 内核的免费类 Unix 操作系统)开始围绕新的 Linux 内核项目形成时,斯托曼开始产生兴趣。当 Debian 项目于 1993 年开始时,在 Ian Murdock 的领导下,FSF 为这个年轻的项目提供了一些财政支持。然而,Debian 开发人员很快与 Stallman 和 FSF 分道扬镳,部分原因是技术问题。例如,一个问题是 Stallman 想要在程序中保留调试符号,而 Debian 想要去除它们。
一旦 Debian 和 FSF 分道扬镳,Stallman 就要求 Debian 将自己称为 GNU/Linux。这个请求是向布鲁斯·佩伦斯提出的,因为默多克已经将领导权交给了他。由于这些组织的关系很好,并且共享(和共享)共同的目标,Debian 开发人员按照他的要求去做。当然,Stallman 独立推广了这样的名称是正确的,但是实际基于 Linux 的操作系统的合作在自称这样的名称中对促进此类名称的使用具有重要意义。
Stallman 给出的基本原理包括 (a) 除了 Linux 内核之外,系统的核心主要是 GNU 工具,(b) Linux 内核在某种意义上是 GNU 项目的高潮/完成,他一直试图获得一个可以工作的内核一段时间,所以它应该使用这个名称作为承认和提醒人们 GNU 项目理想的一种方式。原因 (a) 经常被提及,尽管当时并不完全正确,现在更不正确,尽管基于 Linux 的操作系统的重要部分显然依赖于 GNU 工具,例如 bash、gcc、binutils、gdb, libc 等,在某些情况下,它们可以被其他工具替换。因此,这些论点至少是值得商榷的,而且确实引起了很多争论。
据我所知,只有 Debian 和(部分)它的衍生产品(在其父级的领导下)称自己为 GNU/Linux。然而,其他所谓的 Linux 发行版,如 Fedora、Gentoo 等,在本质上与 Debian 没有什么不同——它大多是相同的软件。因此,人们同样有充分的理由将它们称为 GNU/Linux。
在没有 GNU 用户空间的情况下,使用 Linux 内核的系统并不多,因为两者在很大程度上是一起开发的,并以各种方式交织在一起。(例如,Linux 内核是用 gcc 的扩展 (GNU) C 编写的,不会使用标准的 C 编译器构建。)正如 Thomas 所说,最明显的例子是 Android,但由于它已被 Google 严重分叉将 Android 内核称为 Linux 是否正确是值得怀疑的,尽管有关于未来合并/和解的讨论。
另一方面,不幸的是,Stallman 和 FSF 显然对 GNU/Linux 术语施加了相当大的压力。例如,Jonathan Corbet在 LWN 评论中写道, FSF 拒绝与他交谈,除非他使用术语 GNU/Linux。Jon 除了是 LWN 的创始人之外,还是一位资深且受人尊敬的内核开发人员。评论全文如下:
明确一点:多年前,我们不再向 FSF 征求意见,因为 FSF 拒绝在没有我们事先承诺的情况下与我们交谈,说明我们将说什么以及我们将使用哪些术语。我们不愿意做出这样的承诺。如果 FSF 对此类事情的政策发生变化,我们将很高兴知道。
这显然是对 GNU/Linux 术语的坚持以及其他方面的参考。
上述历史在 Glyn Moody 的“Rebel Code”的第 6 章(“Boot Then Root”)中有详细介绍。
操作系统是内核和用户态的组合。基本上,内核管理硬件,而用户区为用户提供全面的界面。
在常见的 GNU/Linux 发行版中,Linux提供内核,而GNU 项目则提供用户区工具。GNU 的诞生早于 Linux,并提供了大量实用程序来构建完整的操作系统。
然而,他们缺少一个内核。尽管他们有赫德内核,但准备时间太长了。然后,在人们对它的巨大热情的帮助下, Linux 出现了,它的发展速度比赫德还快。
您现在拥有来自两个不同项目的用户空间和内核。由于每个项目对于拥有一个操作系统都是必不可少的,为什么不将协会命名为GNU/Linux,以便每个项目都获得自己的一份功劳呢?
您还有其他用户区,例如 BSD utils 或BusyBox。然而,与 GNU 实用程序相比,它们或多或少是完整的,并且某些软件只能在 GNU 用户空间中运行。例如,大多数BSD操作系统都使用GCC作为编译器,而LLVM很快就会改变这种情况。
作为一个通用操作系统,您可以运行带有 FreeBSD 内核和 GNU 用户区的 Debian。
归档时间: |
|
查看次数: |
2483 次 |
最近记录: |