44

我已经使用 Linux 好几年了,但从未超越从 CD/DVD 安装。如果应用程序管理器没有我在软件中寻找的东西,那么我就是一个失败的原因。

但现在我正试图了解“Linux”是什么。

我脑海中浮现的第一个词是“内核”。在阅读了 Wikipedia 之后,我了解到内核是运行以使其他软件(OS + 应用程序)访问硬件(CPU、RAM +++)的软件。它还处理内存,但这不是操作系统应该做的(我从操作系统类中记得的)吗?

Linux 发行版只是软件的打包列表吗?

拿我最喜欢的发行版:Fedora。它现在是第 14 版,并附带内核 2.6.35。

内核是否来自中央某个地方并且是每个Linux 发行版的核心?如果这是真的,那么 Linux 发行版是否只是使带有内核的计算机更易于使用的一种方式?这样一来,发行版+内核就是操作系统,因为没有另一个的那个是不可用的(也许是纯内核,但谁坐在上面呢?)。

4

4 回答 4

35

基本正确。对我来说,“linux”只是内核。但是将整个发行版称为 linux 是很常见的。这就是让 RMS 如此烦恼的原因。他认为它应该被称为 GNU/Linux,因为他认为发行版是 linux 内核加上来自 GNU 项目的附加软件。这也是有道理的,但我从不使用术语 GNU/Linux。我说的是内核 linux,或者“linux 发行版”,或者特定的发行版。

所以是的。发行版只是内核(可能包括特定于发行版的补丁)加上使其可用的所有额外程序。

内核是一个中心项目,在每个发行版中名义上都是相同的,但大多数发行版都对其进行了一些定制。

额外的软件不仅使内核更加用户友好,而且使它完全可用。内核只是中断处理程序、设备驱动程序和系统调用。它基本上虚拟化了硬件并为程序工作提供了标准环境。

就“操作系统”一词而言,它可能会令人困惑。有人可能会说内核是操作系统,而其他一切要么是实用程序,要么是应用程序或其他东西。其他人可能会说内核加上其他一些软件包构成了操作系统,但大多数软件不是操作系统的一部分。其他人可能会说发行版中的所有软件都是操作系统的一部分。

于 2010-08-04T08:58:11.820 回答
23

Linux是内核。这就是 Linus 所写的内容,也是内核开发人员今天继续努力的内容。它控制硬件。

操作系统是包含内核和相当多的低级“应用程序”的东西,允许您作为用户使用您的计算机做有用的事情(想想文件管理器、控制面板等)。

发行(distribution)是一个操作系统,其中包含绝对大量的高级应用程序(a),如 DVD 创作工具、网络浏览器、办公套件等等,几乎无限(b)

现在内核/操作系统甚至操作系统/发行版之间存在灰色区域,但我认为这是理解它如何挂在一起的一个公平起点。


(a)甚至 Windows 也在某种程度上做到了这一点,包括写字板、计算器和画图,尽管还没有达到 Linux 发行版扩展到的疯狂多产的水平——我们真的需要 472 个不同的文件管理器吗?选择是好的,是的,但只是在一定程度上:-)


(b)是的,我知道“ad-near-infinitum”没有意义,因为从无限中减去的任何有限量仍然是无限的。但是,如果您想要数学准确性,您可能应该访问https://math.stackexchange.com :-)

于 2010-08-04T08:52:50.717 回答
4

操作系统只是内核和外壳,它们携手合作。

发行版是在内核上工作的定制外壳的组合。这意味着,例如,Kali、Ubuntu、fedora、Mint 等是在 Linux 内核上工作的不同发行版。

Shell 充当用户和内核之间的接口。Shell 可以是命令行界面或图形用户界面。Bash、sh、Windows GUI 是一些 shell。

内核是操作系统的枢纽。它为程序分配时间和内存,处理文件存储等。

为了进一步解释 shell 和内核,假设您键入 cd 。shell 在文件存储中搜索包含程序 cd 的文件,然后通过系统调用请求内核在 myfile 上执行程序 cd。

举个简单的例子——Windows GUI是一个 Shell,Windows OS是微软的发行版。

类似地,Ubuntu OSfedora OS等是使用 Linux 内核在各种 shell 上工作的发行版。

Shell 或发行版不会使 Kernel 对用户更友好,但它可以让用户使用。

所以现在,你可以简单地说 Linux 是一个内核。Linux + shell(Bash、Gnome 等)是一个 Linux 发行版,比如 Ubuntu、Mint、Kali 等,它们每个都是一个操作系统。

于 2018-01-03T19:44:44.193 回答
-3

“内核”和“外壳”是原始术语,例如“核心”和“外壳”。“Shell”是命令解释器。“发行版”是一个术语,表示该发行版中包含的定制外壳 + 特定程序。不过,一个发行版可能有几个 shell。从用户的角度来看,这接近于人类语言的概念。是您必须与将与 shell 对话的终端对话的语言。Shell 将读取它并在文件存储中查找文件(仍在 shell/发行版中)。一旦找到文件(可执行文件),shell 会将其发送到执行工作(进程)的内核。想一想一辆多年来基本不变的发动机但会改变其框架/车身的汽车。我想我需要在这里停下来...

于 2016-01-29T11:58:15.277 回答