为什么人们将 Linux 称为内核而不是操作系统?据我所知,内核是操作系统的一部分。
答案1
Linux 系统由许多不同的部分构建而成。
核心部分是linux内核。 (你可以从内核.org,它最初是由莱纳斯·托瓦尔兹谁将其命名为“Linux”。)
内核本身几乎没有什么用处。它管理所有类型的硬件并提供应用程序使用的接口。因此,要使用它,您需要使用该内核的应用程序。
另一方面有GNU项目, 发起人理查德·斯托曼。它的使命是创建一个完整的免费操作系统及其周围的所有标准工具。
几年后,GNU 项目进展顺利,他们编写了所有标准工具,但仍然缺少一个可用的内核。
所以碰巧同时有一个没有工具的内核项目(Linux)和一个有所有工具但没有内核的项目(GNU)。由于两者都是用相同的 UNIX 思维方式编写的,因此可以将它们组合成一个完整的操作系统,人们恰当地称之为“GNU/Linux”。
但是,如果没有您想要在其上运行的软件,即使是这种裸露的“GNU/Linux”系统也不是很有用。 (比如浏览器、邮件服务器或类似的东西。)
因此一些分布(如Debian、RedHat、SuSE、Arch等)将Linux内核、GNU工具和各种应用程序打包在一起,以便于安装和维护。 (也有使用其他内核的发行版。例如,您可以有一个Debian系统以 FreeBSD 或 GNU-Hurd 作为内核。)
现在,对于“普通”人来说(例如,他们只想拥有一个正在运行的网络浏览器),这个背景太详细了,他们只需要一个名称。因此,大多数时候,有人声称他安装了“Linux”,他通常实际上安装了一些发行版,其中包含 Linux 内核,作为许多发行版的一部分。
长话短说,人们通常只使用中央内核的名称来指代整个系统。
由您来决定所谓的“操作系统”。它只是管理硬件的东西(比如 Linux)还是你与之交互的东西(比如你最喜欢的桌面环境),或者可能是介于两者之间的东西,比如基本的(基于命令行的)GNU/Linux。
答案2
内核是较大操作系统的组成部分——通常,在 Linux 发行版中,较大操作系统包含 GNU 工具基础,这就是为什么许多人将内核称为 Linux,将整个操作系统称为“GNU” /Linux”(尽管很多人并没有做出这样的区分)。
人们将 Linux 称为操作系统,因为他们必须选择一个名称来指代由各部分总和提供的整体操作系统。 Linux 是用户容易看到的最低级别组件,因此很自然地采用这个名称和角色。人们通常不会将 GNU grep 称为“GNU grep”,他们通常只是将其称为“grep”——对于许多用户来说,GNU 工具并不像 Linux 内核那样明显地捆绑在一起。
Richard Stallman 非常坚持让人们将 Linux 称为“GNU/Linux”,因为它包含许多 GNU 工具(C 编译器可能是最关键的)。我没有那么大惊小怪,其他人也没有那么大惊小怪。
如果你想清楚的话,GNU/Linux 明确指的是操作系统(而不是内核)。脱离上下文后,“Linux”的含义明显更加模糊。
答案3
据我所知,内核是操作系统的一部分。
内核是操作系统的“核心”。它提供大部分关键服务。进程的启动、终止和调度、为进程分配内存和交换空间、进程间通信、文件、网络堆栈的较低级别、某些级别的 IO 抽象。
在内核之上,我们构建了一系列其他组件。一方面,如果没有至少一些其他组件,内核就没有多大用处。另一方面,这些组件中很少有真正是强制性的,并且大多数都可以用其他组件替换。
因此,究竟哪些组件应算作“操作系统”的一部分尚不明确。
为什么人们将 Linux 称为内核而不是操作系统?
两个原因。
首先,严格来说这是真的。名为“Linux”的项目仅维护一个内核。第三方分销商需要将其他软件组合在一起,才能真正将其变成一个有用的系统。
其次,自由软件基金会对 Linux 获得所有荣耀感到有些恼火。特别是 Linus 是一个自由软件实用主义者而不是一个理想主义者。
GNU 项目由 FSF 设立,旨在创建 Unix 的自由软件替代品。他们创建了许多重要组件的替代品,例如编译器、binutils(汇编器、链接器等)libc(提供 C 标准库和将内核的系统调用接口转换为 posix 的包装器)、textutils、shellutils 和 fileutils(现在合并为coreutils)。
然而,他们努力寻找 Unix 内核的替代品。 1987 年,斯托曼决定采用基于 Mach 微内核和一组称为 Hurd 的守护进程的系统。然而,由于许可问题,该项目的启动时间被推迟了 3 年,并且从那时起就一直处于停滞状态。
与此同时,一位名叫 Linus 的学生受 MINIX 的启发编写了自己的内核。单独的内核并不能构成操作系统,因此 GNU 组件被移植到新内核中。几个月之内,内核已经足够先进,并且已经移植了足够的软件,使系统能够“自托管”,也就是说可以在 Linux 上构建 Linux。不久之后,Linux 采用了 GPL 并迅速开始获得发展势头。
无论好坏,Linux 这个术语不仅用来描述内核,还用来描述整个系统。这让 FSF 很恼火,他们认为内核只是众多组件中的一个。从他们的角度来看,他们认为自己的项目本质上是被拉拢的。
答案4
Linux是一个内核。这是称其为内核的主要原因。 Ubuntu、Android 和 Chrome OS 是根本不同的操作系统。 Ubuntu 应用程序不一定在 Android 上运行,就像它们不一定在 Windows 上运行一样。原因很简单:操作系统不同。从安全角度来看,基于 Linux 的操作系统也存在很大差异。 Chrome 操作系统众所周知非常安全。 Android 并不那么安全:http://www.forbes.com/sites/gordonkelly/2014/03/24/report-97-of-mobile-malware-is-on-android-this-is-the-easy-way-you-stay-安全的/