GNU 是“GNU's Not Unix !”(GNU并非Unix !)的首字母递归缩写;它是g发音的单音节字,就像“grew”,但要用字母“n”替换掉“r”。这是Richard Stallman读“GNU”的录音(ogg音频格式,有的浏览器可能会不支持如:Safari、Firefox;Chrome可以良好的支持)。
1.1. 从未听说过GNU的GNU用户
大多数人从未听说过GNU。甚至大多数使用GNU系统的人都从未听说过GNU,因为如此众多的人和公司教给他们的名字是“Linux”。确实,GNU用户经常说他们“运行的是Linux”,这就像是在说你开车是“驾驶化油器”或者是“驾驶变速箱”。
尽管如此,那些了解GNU的人会把它和自由软件运动的自由理想联系在一起。这种联系不是巧合;开发GNU的动机正是让人们能够使用电脑并拥有自由。
第一次在“GNU/Linux”中看到“GNU”这个名字的人不会立即明白它代表什么,但这已经是走近了一步。GNU这个名字联系着我们追求自由和社会团结的目标,这个联系存在于千百万了解GNU的GNU/Linux用户的脑海中。它存在于gnu.org和Wikipedia中。它存在于网络中;如果这些用户搜索GNU一词,他们就会发现GNU代表的思想。
如果他们不搜索,他们也还是会遇到这些思想。“开源”一词企图将人们的注意力从用户的自由上引开,但是又不那么彻底;GNU和自由软件的讨论仍在继续,人们还是有机会遇到这些思想。此时,如果人们知道自己是GNU系统的用户的话,他们就更有可能注意到关于GNU的信息(比如说它是一个自由和社区运动的作品)。
随着时间的发展,称该系统为“GNU/Linux”就会让更多的人对我们开发GNU系统的自由理想有所了解。同时它也有利于提醒我们社区中已经知道这些理想的人们不要忘记自由的理想,因为在现实中,太多关于自由软件的讨论是完全从实用(因而是与道德无关)的角度出发的。当我们请求你称该系统为“GNU/Linux”时,我们就是在请求你帮助我们让公众了解自由软件的理想。
1.2.关于GNU操作系统
GNU于1983年由Richard Stallman(rms)发起,意在为所有软件用户能够自由控制自己的计算而构建一款由大家共同努力开发而成的操作系统。rms今天仍然是GNU的首席搞事者1。
GNU的基本目标和一贯目标是提供一个和Unix兼容的100% 自由软件的操作系统。不是95%、也不是99.5%、而是100%自由。这个系统的名字叫GNU,是GNU's Not Unix的首字母递归缩写—这是对Unix的技术思想致敬的一种方法,同时表达GNU有所不同。从技术上说,GNU很像Unix。但是它不同于Unix,GNU给予其用户自由。
今天我们已经有了达成这个目标的完全自由的系统发布(“发行版”),其中很多使用Linux-libre内核(GNU和Linux内核的关系另有详述)。GNU软件包的设计就是能够一起工作,所以我们才可能有功能正常的GNU系统。这些软件包也成为许多发行版的通用“上游”软件,因此对GNU软件包的贡献整体上帮助了自由软件社区。自然地,GNU的工作一直在进行,为了创造一个给计算机用户最大自由的系统。GNU软件包包括以用户为导向的应用程序、实用程序、工具、应用库、甚至游戏—一个操作系统能够为其用户提供的所有程序。我们欢迎新的软件包。
数千人的加入使GNU有了今天的成功,有许多方法可以做出贡献,有技术性的,也有非技术性的。GNU开发者通过GNU黑客聚会时不时地见面,有时这也是更大型的自由软件社区聚会LibrePlanet会议的一个组成部分。
GNU由自由软件基金会以多种方式支持,这也是由rms创建的倡导自由软件理念的非盈利组织。FSF还接受版权合约和免责声明,因此它可以为GNU程序打官司。(更确切地说,为GNU贡献程序不要求把版权转交给FSF。如果你赋予FSF版权,FSF在有人违反GPL时会执行版权;如果你保留版权,那么你自己负责执行版权。)
我们的终极目标是为计算机用户要完成的所有工作提供自由软件—这样就使专属软件成为历史。
3.1.Linux和GNU系统
GNU 项目创始于1983年,旨在开发一个类似 Unix ,且为 自由软件 的完整的操作系统: GNU 系统。当时GNU 的内核尚未完成,所以 GNU 使用 Linux 作为其内核。GNU 和 Linux 以这样的方式组合成为 GNU/Linux 操作系统,目前有数百万用户。(这个组合有时被错误地称为 Linux。)
GNU那么多大牛为啥10多年做不出系统内核? Linus却靠一己之力在寝室完成了Linux内核?
GNU那帮人就是太牛了导致弄不出来内核。
因为 GNU项目的内核的设计是微内核设计,结果太过于先进而……
而 Linux 是传统的宏内核设计,这种内核随便找几个认真上课的大本学生就能凑合嘀咕出来一个。
结果因为Linus选择了 GPL 协议,所以大家的注意力就全都到了 Linux 上面,技术先进的 Hurd 反而成了弃子。
Linus 完成的内核其实也不怎么样,那是在一帮疯子的合作下才实现真正成为可用的内核的。还有,GNU 项目是 84 年成立的,Linux 也已经有20年多的历史了。GNU 那帮疯子应该是说 30 年造不出一个内核。其实 hurd 一直就有,但总是没办法拿出来用而只能用于“技术试验”。
Debian 有 Hurd 内核的版本。
从上面的所述知道,Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上各种应用程序。因此,严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。基于这些组件的Linux软件被称为Linux发行版。一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice.org),等等。
绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。正是由于Linux使用了许多GNU程序,GNU计划的开创者Richard Stallman博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。
有部分Linux套件,包括了Debian,采用了“GNU/Linux”的称呼。但大多数商业Linux套件依然将操作系统称为Linux。有些人也认为“操作系统”一词指的应该只是系统的内核,其他程序都只能算是应用软件,这么一来,该操作系统的内核应叫Linux,而Linux套件是在Linux内核的基础上加入各种GNU工具。
虽然,我们没有为GNU和Linux的开发做出什么贡献,但是我们可以为GNU和Linux的宣传和应用做出微薄的努力,至少我们能够准确地去向其他人解释清楚GNU、Linux以及GNU/Linux之间的区别。让我们一起为GNU/Linux的推广贡献出自己的力量!
参考资料:
https://baike.baidu.com/item/GNU
http://www.gnu.org/gnu/gnu.html