Linux和GNU系统

许多计算机用户运行的是GNU系统每天,在不知不觉中。经过一个特殊的转折,今天广泛使用的GNU版本通常被称为“Linux”及其许多用户不知道它基本上是GNU系统,由GNU项目.

确实有一个Linux,这些人正在使用它,但它只是他们使用的系统的一部分。Linux是内核:中的程序将机器资源分配给另一台机器的系统您运行的程序。内核是操作系统,但本身无用;它只能在完整操作系统的上下文。Linux通常用于与GNU操作系统的结合:整个系统基本上是添加了Linux的GNU,或GNU/Linux。所有所谓的“Linux”发行版实际上是GNU/Linux。

许多用户不理解内核之间的区别是Linux,以及整个系统,他们也将其称为“Linux”这个名字的模糊用法无济于事人们理解。这些用户经常认为Linus Torvalds在一些帮助下,1991年开发了整个操作系统。

程序员通常都知道Linux是一个内核。但自从他们他们也普遍听说整个系统被称为“Linux”通常设想一段历史,证明命名整个系统是正确的在内核之后。例如,许多人认为,莱纳斯·托瓦尔兹(Linus Torvalds)完成了Linux内核的编写,它的用户四处寻找其他随之而来的是自由软件,并发现(没有特殊原因)制造类Unix系统所需的大多数东西都已经可用。

他们发现的并不是意外,而是不完全的GNU系统。可用的自由的软件因为GNU项目自1984年以来一直致力于制造一台。这个GNU宣言我们出发了开发免费类Unix的目标系统,称为GNU。这个首次公告GNU项目还概述了一些GNU系统的原始计划。在Linux启动时,GNU几乎完成了。

大多数自由软件项目的目标是开发特定的特定工作的程序。例如,Linus Torvalds着手编写类Unix内核(Linux);唐纳德·克努特开始写一篇文章格式化程序(TeX);Bob Scheifler着手开发一个窗口系统(X窗口系统)。衡量这一贡献是很自然的由来自项目的特定程序创建的项目。

如果我们试图用这种方式衡量GNU项目的贡献,我们会得出什么结论?一家CD-ROM供应商发现,在他们的“Linux分配,“全球导航卫星系统软件是最大的单一特遣队,约占全部源代码,其中包括一些主要的没有组件就没有系统。Linux本身就是大约3%。(2008年的比例相似:在“主要”gNewSense、Linux和GNU软件包的存储库分别占1.5%和15%。)因此,如果您要根据谁在系统中编写程序,最合适的选择“GNU”

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

许多人对自由软件做出了重大贡献他们的软件都值得称赞。但是原因是集成系统-而不仅仅是收集有用的程序是因为GNU项目让它成为一个。我们列出了需要制作的程序完成我们系统地发现,或者找人把清单上的所有东西都写下来。我们写了基本的但没有意思[1]组件因为你不可能有一个系统没有他们。我们的一些系统组件、编程工具、,他们自己在程序员中很受欢迎,但我们写了很多非工具组件[2].我们甚至开发了一款国际象棋游戏GNU chess,因为一个完整的系统需要游戏也是如此。

到90年代初,除了内核。我们还启动了一个内核GNU赫德,它位于机器。开发这个内核比我们预期的要困难得多;这个GNU Hurd于2001年开始可靠工作,但路还很长从准备好供人们普遍使用。

幸运的是,由于Linux的原因,我们不必等待Hurd。1992年Torvalds释放Linux后,它填补了GNU系统。人们可以然后将Linux与GNU系统结合建立一个完整的自由体系GNU系统的版本,其中也包含Linux。这个换句话说,GNU/Linux系统。

让他们一起工作不是一件小事。一些GNU组件[3]需要重大改变使用Linux。将完整系统集成为分发“开箱即用”也很重要。需要解决如何安装和引导系统-我们还没有解决的问题,因为我们还没有达到了这一点。因此,开发各种系统的人发行版做了很多基本工作事情的本质,肯定会有人去做。

GNU项目支持GNU/Linux系统以及这个全球导航卫星系统系统。这个金融稳定论坛资助改写与Linux相关的GNU C库扩展,所以现在他们集成良好,最新的GNU/Linux系统使用当前的没有更改的库版本。FSF还资助了早期阶段Debian GNU/Linux的开发。

今天有许多不同的GNU/Linux系统变体(通常称为“发行版”)。其中大多数包括非免费程序——他们的开发人员遵循这个“打开源”哲学与Linux关联,而不是与“免费软件”哲学GNU的。但也有完全免费的GNU/Linux发行版.FSF支持其中一些人的计算机设施。

制作一个免费的GNU/Linux发行版不仅仅是一个问题消除各种非免费程序。如今Linux也包含非自由程序。这些程序旨在在系统启动时加载到I/O设备中包括在Linux的“源代码”中,作为一长串数字。因此,维护免费的GNU/Linux发行版现在需要维护的免费版本Linux操作系统也是。

无论您是否使用GNU/Linux,请不要混淆公众含糊不清地使用“Linux”这个名字。Linux是内核,是系统的基本主要组件之一。这个整个系统基本上是GNU系统,添加了Linux。什么时候?你说的是这个组合,请称之为“GNU/Linux。”

如果你想在“GNU/Linux”上建立一个链接参考,本页和https://www.gnu.org/gnu/thegnuropject.html都是不错的选择。如果您提到了Linux内核,并想添加一个链接以进一步参考,https://foldoc.org/linux是一个很好的URL。

后记

除GNU外,还有一个项目独立生产一个免费的类Unix操作系统。该系统称为BSD,并且它是在加州大学伯克利分校开发的。80年代是不免费的,但90年代初开始免费。存在的自由操作系统今天[4]几乎可以肯定要么是GNU系统的变体,或一种BSD系统。

人们有时会问BSD是否也是GNU的一个版本,比如GNU/Linux。BSD开发人员受到启发,使他们的代码免费以GNU项目为例,明确呼吁GNU活动家帮助说服了他们,但代码几乎没有重叠使用GNU。今天的BSD系统使用一些GNU程序,就像GNU一样系统及其变体使用一些BSD程序;然而,被视为整体而言,它们是两个独立进化的不同系统。这个BSD开发人员没有编写内核并将其添加到GNU系统中,像GNU/BSD这样的名字不适合这种情况[5].

脚注

  1. 这些乏味但重要的组成部分包括GNU汇编程序(GAS)和链接器(GLD),这两者现在是二进制工具包裹,GNU焦油等等。
  2. 例如,The Bourne Again SHell(BASH),PostScript解释器幽灵脚本、和GNU C库不是编程工具。GNUCash、GNOME和GNU国际象棋也是如此。
  3. 例如GNU C库.
  4. 自从那篇文章写好后已经开发出类似Windows的系统,但从技术上讲,它还没有都像GNU或Unix,所以它不会真正影响这个问题。大多数Solaris的内核是免费的,但如果您想创建一个将系统从中解放出来,除了更换内核,您还需要将其放入GNU或BSD。
  5. 另一方面,在本文发表以来的几年里编写完成后,GNU C库已被移植到BSD内核,它使组合GNU系统变得简单用那个内核。就像GNU/Linux一样,这些确实是GNU,因此被称为GNU/kFreeBSD和GNU/kNetBSD取决于系统的内核。普通用户典型的桌面机很难区分GNU/Linux和GNU/*BSD。