为什么人们称 Linux 为内核而不是操作系统?

use*_*323 8 linux kernel

为什么人们将 Linux 称为内核而不是操作系统?据我所知,内核是操作系统的一部分。

mic*_*has 31

一个 linux 系统由许多不同的部分组成。

核心部分是linux内核。(你可以从kernel.org得到它,它最初是由Linus Torvalds编写的,他将它命名为“Linux”。)

内核本身几乎没用。它管理各种硬件并提供应用程序使用的接口。因此,要使用它,您需要使用此内核的应用程序。

另一方面,还有由Richard Stallman发起的GNU 项目。它的使命是创建一个完整的免费操作系统,其中包含所有标准工具。

几年后,GNU 项目进展顺利,他们编写了所有标准工具,但仍然缺少一个可以工作的内核。

所以碰巧同时有一个没有工具的内核项目(Linux),一个有所有工具但没有内核的项目(GNU)。由于两者都是用相同的 UNIX 思维方式编写的,因此可以将它们组合成一个完整的操作系统,人们恰当地将其称为“ GNU/Linux ”。

但即使是这种裸露的“GNU/Linux”系统,如果没有您想要在其上运行的软件,也不是很有用。(比如浏览器、邮件服务器或类似的东西。)

因此,一些发行版(如 Debian、RedHat、SuSE、Arch 等)将 Linux 内核、GNU 工具和所有类型的应用程序打包在一起,以便于安装和维护。(也有使用其他内核的发行版。例如,您可以拥有一个以 FreeBSD 或 GNU-Hurd 作为内核的Debian 系统。)

现在对于“普通”人来说,(例如他们只想有一个正在运行的网络浏览器)这个背景太详细了,他们只想要一个名字。因此,大多数时候有人声称他安装了“Linux”,但实际上他确实安装了一些随 Linux 内核一起提供的发行版,作为许多发行版的一部分。

长话短说,人们通常只使用中央内核的名称来指代整个系统。

由您决定所谓的“操作系统”。它只是管理硬件的东西(比如 Linux),还是你与之交互的东西(比如你最喜欢的桌面环境),或者介于两者之间的东西,比如基本的(基于命令行的)GNU/Linux。


Chr*_*own 9

内核是较大操作系统的组成部分——通常,在 Linux 发行版中,较大的操作系统包含 GNU 工具的基础,这就是为什么许多人将内核称为 Linux,而将整个操作系统称为“GNU /Linux”(尽管很多人不做这种区分)。

人们将 Linux 称为操作系统,因为他们必须选择一个名称来指代由部分总和提供的整个操作系统。Linux 是用户很容易看到的最低级别的组件,因此它具有此名称和角色是很自然的。人们通常不会将 GNU grep 称为“GNU grep”,他们通常只称其为“grep”——对于许多用户来说,GNU 工具不像 Linux 内核那样明显地捆绑在一起。

Richard Stallman 非常坚持让人们称 Linux 为“GNU/Linux”,因为它包含许多 GNU 工具(C 编译器可能是最关键的)。我没那么大惊小怪,其他人也不多。

如果您想清楚,GNU/Linux 明确指的是操作系统(而不是内核)。“Linux”在上下文之外明显更加模棱两可。

  • Solaris *不是* Linux 发行版——它本身就是一个操作系统,拥有自己的内核。 (4认同)