当我们说我们正在使用 Linux 时,我们到底是什么意思?

当我们说我们正在使用 Linux 时,我们到底是什么意思?

我正在阅读一篇关于 GNU 的文章,内容如下

确实有Linux,而且这些人正在使用它,但它只是他们使用的系统的一部分。 Linux 是内核:系统中将机器资源分配给运行的其他程序的程序。内核是操作系统的重要组成部分,但它本身并没有什么用处。它只能在完整的操作系统环境中运行。 Linux通常与GNU操作系统结合使用:整个系统基本上是GNU加上Linux,或者GNU/Linux。所有所谓的“Linux”发行版实际上都是 GNU/Linux 的发行版。

我一直认为 Linux 是一个内核和操作系统,但看起来 Linux = Linux 内核和 GNU 操作系统。

有人可以指出我们在日常生活中使用的“Linux”术语中每个术语的确切功能吗?另外,根据 wiki,GNU 的设计类似于 Unix,但与 Unix 的不同之处在于它是自由软件并且不包含 Unix 代码。我以为 Unix 是开源的。不是吗?

答案1

我相信您所指的内容在自由软件基金会 (FSF) 网站上有所介绍:

根据 FSF 的说法,他们的论点是 Linux 只是一个内核。一个可用的系统是由内核 + ls、 、 shell 等工具组成的。find​​因此,当提到整个系统时,应该将其称为 GNU/Linux,因为其他工具与 Linux 内核一起构成了一个完整的系统。可用的系统。他们甚至继续谈论FSF Unix 内核,赫德,提出 Hurd 和 Linux 本质上是 GNU/X 系统可互换的内核。

我觉得整个争论很累人,并且认为我们的时间可以做更好的事情。名称只是一个名称,人们认为包含 GNU 软件 + Linux 内核 + 其他非 GNU 软件的系统是 Linux 或 GNU/Linux 是一个品味问题,在宏伟的计划中并不重要。事物。事实上,我认为这种争论对 Linux 和 GNU/Linux 造成了更大的伤害,因为它破坏了社区,让公众对每件事的实际含义感到困惑。

有关此主题的更多信息,请参阅维基百科文章,标题为:GNU/Linux 命名争议

所有 Unix 都是开源的吗?

据我所知,并非所有 Unix 都是开源的。 Unix 中的大多数功能都是指定的,因此工作方式是开放的,但此功能的具体实现是否开放取决于它所属的发行版。

例如,直到最近,Solaris(一种 Unix)还不被认为是开源的。只有当Sun Microsystem将核心组件发布到OpenSolaris项目中时,至少Solaris的组件才变得开源。

Unix 历史

我绝不是这个主题的专家,所以我建议看看Unix 维基百科页面了解有关该主题的更多信息。

Linux 历史

查看 Unix 谱系图,了解有关 Unix 被视为开放源代码、混合源代码或闭源代码的更多信息。

  ss of history

我还找到了GNU/Linux 发行时间线项目进行此对话时很有用。

ss of linux timeline

答案2

通常,我们通常所说的操作系统是涉及以下软件的组合:核心,其工作是管理机器的资源和一些运行在内核之上的应用程序,称为用户区(这包含浏览器、编译器、pdf 阅读器、任何非内核、驱动程序或虚拟机管理程序)。

如果没有历史背景,这个问题的其余部分就无法回答。理查德·斯托曼 (Richard Stallman) 宣布 GNU 项目1983 年 9 月 27 日。目的是提供开发类 UNIX 操作系统(以及随附的用户空间)所需的软件自由软件。到 1992 年,GNU 项目几乎完成了其软件所需的所有部分,除了内核之外。与此同时,Linus Torvalds 发布了他的核心Linux(版本 0.12)作为自由软件,根据GPL许可证。因此,第一次有可能运行一台(几乎)完全由自由软件组成的计算机。

Linux(如前所述)是一个核心,并且,虽然它是允许您使用计算机的软件的最终基础,但它本身并没有多大用处。您应该将其与某种应用程序(用户空间)配对才能运行。这就是 Debian 或 Ubuntu 等 GNU/Linux 发行版所做的事情。

值得一提的是,内核既重要又不重要。请允许我解释一下。大多数使用计算机的人都习惯于用户态而不是内核。内核是大多透明,大多数人会使用具有相同用户空间的另一个内核,甚至可能不会注意到差异(当然,除非它们依赖于特定内核提供的功能)。

因此,当您使用Linux,您确实正在使用 GNU 操作系统的实现;那就是Linux内核和GNU用户区(GNOME、GNU 编译器集合、GNU 调试器、GNU Coreutils、GNU binutils 等)。这就是为什么FSF坚持称其为GNU/Linux(在我看来,这是一个公平的要求)。

当然,您可以在没有 GNU 用户区的情况下使用 Linux(提示:Android、忙碌盒),当然,在其他内核(kfreebsd、hurd 等)之上使用 GNU 用户区。

至于Unix是否开源之类的,这是一个可能引起争论的问题。不过,您可能会发现一些有用的信息这里

答案3

Linux内核是一个为操作系统提供以下功能的程序:

   linux kernel map image

图片原始链接: http://www.makelinux.net/kernel_map/

内核是必不可少的,在它之上有实用程序和所有其余的打包软件。完整操作系统和内核之间的区别等于软件的其余部分以及发行版维护人员如何将其组合在一起。

这些维护者不一定会制作所有额外的软件,他们有时会组装并修改它,然后将它们组合在一起,为当今大多数人提供 Linux 体验 - 他们添加“风味”,可以这么说,并且通常有血统到非常成熟的发行版,如 Debian 和 Redhat 等。问题是,Linux 发行版中打包的初始实用程序和软件的很大一部分包括改编自GNU项目。许多软件是在 Linux 内核发明之前由 GNU 项目使用其资源组合而成的。而且它是免费的,并且许多软件都有助于建立 Linux 的普及,因为它们都是通过 GPL 许可证链接的免费和开源软件。 libc framwework、Gnome 桌面和 gcc 编译器是 GNU 维护的软件的示例。

这当然不是一件小事,承认它不应该那么政治化,但双方都有直言不讳的人,并且存在辩论。无论实际应用如何,更多地了解我们使用的发行版中的软件及其创建者的历史都是一项有效的努力。

相关内容