首页 > 技术文章 > 什么是GNU

adorkable 2020-09-11 15:18 原文

先说结论,GNU是一个操作系统

GNU操作系统

“GNU”是“GNU's Not Unix!”的首字母递归缩写形式,发音类似普通话“哥怒”。

GNU于1983年由Richard Stallman(rms)发起,意在为所有软件用户能够自由控制自己的计算机而构建一款由大家共同努力开发而成的操作系统。

由于没有任何赞助仅靠大家共同努力开发一个操作系统是一件非常困难的事情,因此1985年Richard Stallman又创立了自由软件基金会(Free Software Foundation)来为GNU计划提供技术、法律以及财政支持。

 

尽管有很多人为GNU做出贡献,但是作为操作系统,GNU的发展仍未完成,其中最大的问题是具有完备功能的内核尚未被开发成功。GNU的内核,称为Hurd,是自由软件基金会发展的重点,但是其发展尚未成熟。一个没有内核的操作系统,就相当于没有灵魂的躯壳,好在值得庆幸的是,GNU不必再等Hurd了,因为有了Linux,Linux实际上只是一个内核,这正是GNU系统的一个重要空白,而GNU系统也为Linux内核提供了非常多且必要的系统组件,人们把Linux和GNU系统结合起来组成一个完整的自由系统——一个带有Linux的GNU系统。换句话说,就是GNU/Linux系统,比如工作中常用的Ubuntu就是GNU/Linux发行版中的一个。

 

所以说其实实际上每天都有许多计算机用户使用一个被改动过的GNU系统,但是他们并没有意识到。

在整个GNU/Linux系统中,GNU占了非常大的比重,我们都知道内核其实相对整个操作系统来说是很小的,如果你要根据谁的代码多来命名系统,最合适的单个选择是“GNU”。

但是实际情况是经过一系列的事件,现在被广泛使用的GNU版本则经常被称作“Linux”,而且许多用户并不了解它基本上就是GNU系统,是由GNU工程开发的(除了内核以外)。

无论你是否使用GNU/Linux,请不要含糊不清地使用“Linux”这一名称来混淆大众。Linux是一个内核,是系统的主要基本部件之一。整个系统基本上是GNU系统,加上Linux。如果你说的是这个组合,请称之为“GNU/Linux”。

 

GNU的所有含义

其实说到这里,GNU的含义就很宽泛了:

  • 可以指代操作系统——GNU操作系统
  • 可以指代软件——GNU软件
  • 可以指代为了完成这个操作系统而发起的庞大的工程——GNU工程
  • 或者是想要完成GNU系统/工程而聚集在一起的一帮人——GNU组织

甚至GNU是一种精神或者信仰(说起来有点类似些宗教的感觉......)

推荐阅读