use*_*ser 95
您似乎混淆了操作系统的两个截然不同的部分。这是可以理解的,因为它们通常可以互换使用,但在技术上是不正确的,因此您的问题是基于错误的前提。为了充分探索并希望回答您可能想问的问题,需要上一堂简短的历史课。
首先是 UNIX。基本上,在那些日子里,UNIX 意味着首先出现的 AT&T UNIX 系统。但是 AT&T UNIX 变得非自由,所以 Richard Stallman 开始了 GNU 项目,以编写一个自由的 Unix 系统。因此名称Gnu 不是 Unix,缩写为 GNU。GNU 的计划于 1983 年公布,并于 1984 年开始开发。
到 1990 年代初,GNU 已经从头开始重新实现了大部分 UNIX 实用程序。 维基百科列出了整个系统的一些没有被重写的组件(TeX、X 窗口系统和 Mach 微内核被称为没有被重写的组件的例子)但大多数情况下,用户空间工具是从头开始重写以满足避免重用任何 AT&T(或更确切地说,非自由)代码,以及通过添加命令行选项扩展其功能的目标。因此,GNU 实用程序通常比它们获得原始灵感的工具更强大。
在这一点上,GNU仍然缺少一个重要组成部分:一个操作系统内核,这样可以让一切在真实的计算机没有运行一些其他操作系统一起工作。1991 年,Linus Torvalds 开始从事一个玩具项目,这个项目最终被称为 Linux。这基本上是一个学习当时新的 32 位Intel 80386 CPU的学校项目,开始时非常简单,但最终开始转变为实际可用的操作系统内核。但它没有任何用户级软件;Linux 本身不提供 shell,没有内核初始化之外的系统启动设施,没有文本编辑器,没有图形界面,什么都没有. 内核就像一个汽车引擎;制造一辆有用的汽车必不可少,但它本身并没有用(对于一辆有用的汽车,您需要诸如车轮、变速箱、转向装置、驾驶员可坐的地方、油箱或其他能量储存装置等)。Linux 内核最终在 GNU 通用公共许可证下分发,与 GNU 软件相同。
于是人们开始将两者配对。您将获得一个类 Unix 用户空间,以及基于 Unix 思想的内核(包括与POSIX非常相似的内核),以及完整的源代码,您可以随心所欲地破解它,而且不需要任何费用. 尤其是在Linux 发行版变得普遍之前,它需要一些修补才能使其工作,但它已经完成,足以让那些愿意花一些时间的人使用它。
现在,GNU 提供了自己的内核。您可能没有听说过它,但它被称为GNU Hurd。但是赫德在 1990 年代初并不存在,当时 Linux 开始受到爱好者和修补匠的青睐,因此 Linux 内核和主要使用 GNU 的用户区的组合在开发人员中最受关注。
此外,如今,许多 Unix 系统安装或允许管理员轻松安装 GNU 用户空间的一部分。您可能会在其他非 GNU 系统上看到 GNU bash、GNU 编译器集合、GNU C 库(vanilla 或补丁)等内容。
更糟糕的是,一些系统使用 Linux 内核,但根本没有 GNU 用户空间。作为一个广泛使用的例子,考虑Android OS,它基本上是 Linux 内核加上自定义用户空间。
这很重要,因为它明显模糊了 GNU、Linux 和各种 Unix 之间的界限(只有一种 UNIX,但有许多 Unix,还有更多类 Unix 的操作系统)。当您询问 Linux 时,您确实经常询问 GNU/Linux 系统。但是考虑Debian GNU/kFreeBSD,它在 FreeBSD 内核之上运行 GNU 用户空间,根本不使用 Linux。或者例如 Solaris,您可以在其上轻松安装各种 GNU 软件包,包括 coreutils。我认为 Mac OS X 也附带了部分 GNU 用户空间。或者考虑上面提到的Android。
最后,可用的 GNU 系统可能运行非 GNU 代码,非 GNU 系统可能运行 GNU 代码,但GNU 实用程序不包含非 GNU 代码。