GNU 在 GNU/Linux 操作系统中的主要贡献是什么?

GNU 在 GNU/Linux 操作系统中的主要贡献是什么?

我读到GNU/Linux 常见问题解答,他们要求每个人将整个系统称为 GNU/Linux 的原因之一是:

  • GNU 在开发操作系统方面的主要贡献。

这让我想知道,GNU 在 GNU/Linux 操作系统的开发中做出了哪些主要贡献?

换句话说,GNU/Linux 操作系统中哪些是 GNU 的主要/主要组件?

答案1

最重要的部分是 GCC 编译器、glibc C 库、coreutils 和 binutils 基本 Unix 工具,可能还有 bash shell 和 Gnome 桌面环境(如果您使用这些)。

仅源代码行数并未考虑相对重要性。如果您选择 Debian 或 Fedora 的完整软件,大多数人甚至不会安装其中的一小部分。而且(除非你组织得非常有条理),他们很可能安装了很多软件包,因为他们很感兴趣,安装它来检查一下,然后就忘记了。因此,甚至连下载的软件包的统计数据(就像我相信 Debian 维护的那样)都不是一个公平的描述。

稍后添加:我刚刚遇到这一页作者:O'Reilly(附带一张海报,显示对 Linux 系统的贡献)。

答案2

除了 vonbrand 的回答之外,我们不要忘记对 GNU/Linux 操作系统的一个重大贡献是,当 Linux(内核)问世时,许多 GNU 东西已经存在,已经作为整个生态系统发挥作用,并且可以在开源许可下免费使用。项目开始了。

人们也不应该忘记最初的 GNU 项目目标是什么,即构建一个免费的 Unix 克隆。 Unix 过去是,现在更是一组规范,包含操作系统需要遵守的所有 API、命令和功能。该标准对于开发人员构建便携式应用程序非常有帮助。

GNU libc 和 GNU coreutils/binutils 正是为大多数基于 Linux 内核的操作系统提供了这些 API 和命令。它们构成了基础,在此之上可以构建其他一切。

无论它们的用途和复杂性如何,其余组件都是可选的,并且没有由 Unix 标准指定,因此从技术上讲它们不是 Unix 操作系统及其克隆的一部分。

这就是为什么我认为将 Linux 发行版称为 Linux/GNU/TeX/X11/Python/ISC/Apache/ 等没有多大意义,因为只有 Gnu 和 Linux 构成了核心,提供了所有 Unix 所期望的共同基础/Linux 生态系统。

TEX/X11/Gnome/KDE/Perl/Python/ISC/Apache/Tomcat/LibreOffice/Mozilla/Chromium/无论它们多么有用,都不属于 Unix/Linux。

答案3

我建议阅读这篇文章Linux 和 GNU 系统&GNU 计划获得 GNU 贡献的想法。


以下是部分引自Linux 和 GNU 系统:

  • 贡献概述:

    如果我们尝试以这种方式衡量 GNU 项目的贡献,我们会得出什么结论?一位 CD-ROM 供应商发现,在他们的“Linux 发行版”中,GNU软件是最大的单一队伍,约占总源代码的 28%,其中包括一些必要的主要组件,没有这些组件就不可能有系统。 Linux 本身约为 3%。 (2008 年的比例类似:在 gNewSense 的“主”存储库中,Linux 为 1.5%,GNU 软件包为 15%。)因此,如果您要根据系统中程序的编写者来为系统选择一个名称,最合适的单一选择是“GNU”。

  • 关于目标的澄清:

    但这并不是思考这个问题的最深入的方式。 GNU 项目过去不是、现在也不是一个开发特定软件包的项目。这不是一个项目开发一个C编译器,尽管我们这样做了。尽管我们开发了一个文本编辑器,但这并不是一个开发文本编辑器的项目。 GNU 项目着手开发一个完整的免费类 Unix 系统:GNU。

  • 基本成分声明:

    许多人为系统中的自由软件做出了重大贡献,他们的软件都值得赞扬。但它之所以是一个集成系统,而不仅仅是有用程序的集合,是因为 GNU 项目致力于将其打造成一个集成系统。我们列出了制作一个完整的免费系统所需的程序清单,并且我们系统地找到、编写或找到人编写清单上的所有内容。我们写了重要但乏味的内容(1)组件,因为没有它们就不可能有系统。我们的一些系统组件,即编程工具,在程序员中自行流行,但我们编写的许多组件不是工具(2)我们甚至开发了一款国际象棋游戏,GNU Chess,因为完整的系统也需要游戏。


来自维基百科的文章GNU>组件:

该系统的基本组件包括GNU 编译器集合(海湾合作委员会)GNU C 库(glibc),以及GNU 核心实用程序(核心实用程序),[8]还有 GNU 调试器 (GDB),GNU 二进制实用程序(binutils),[38]GNU Bash shell[33][39]侏儒桌面环境。[40]

还访问GNU 软件包列表>基础系统来自维基百科。


因此,主要组件可以列出为:

  1. GNU Binutils
  2. GNU Coreutils
  3. GNU C 库
  4. GNU 编译器集合(原名:GNU C 编译器)
  5. GNU 焦油
  6. GNU 重击
  7. 侏儒

以及更多。


此外,从常问问题:

Linus Torvalds 在一定程度上受到了 1990 年在芬兰关于 GNU 的演讲的影响。即使没有这种影响,他也可能编写出一个类 Unix 的内核,但它可能不会是自由软件。 Linux 于 1992 年成为免费的,当时 Linus 在 GNU GPL 下重新发布了它。


另请注意,他们不想要求我们仅仅因为他们对系统的最大贡献而称呼 GNU/Linux,但更重要的是引入、保留和鼓励 GNU 的理想主义和目标,对此进行了解释为什么选择 GNU/Linux?

相关内容