我们在网上已经习惯用“Linux”来称呼Linux操作系统了,然而,偶尔也用“GNU/Linux”来称呼和指代同样的操作系统和软件。同时人们也在争论这两种称呼哪个更合适。
本文将不会选边站队,仅力图向你讲述这两种称呼的来历,并解释”Linux”与“GNU/Linux”之间的微妙差异。
什么是“Linux”?
“Linux”这个词仅仅代表内核——操作系统的核心。其他软件, 比如用来编译内核的GNU C编译器,bash命令行终端,GNU Shell组件(包括所有你用到的基本命令),X.org图形服务器, 一个图形化的桌面环境比如Unity(译者注:基于GNOME 3开发),以及在桌面环境上运行的各种软件,比如Firefox,这些都是由不同开发者来开发的。
Linux发行版则集合来所有这些由不同开发者开发的组件,我们习惯将这个有机整合的软件包称为“Linux”.有关更多Linux发行版的知识以及发行版之间的差别,可以阅读HTG 解码:什么是Linux发行版?它们之间有何差别?
GNU计划
1983年Richard Stallman(理查德·斯托曼)创立GNU计划。GNU的目标是创建一套完全由自由软件的兼容UNIX的操作系统。“GNU”是英文“GNU‘s Not Unix!”的递归缩写。(“自由软件”是对一类开源软件的称呼,而自由软件更强调自 由,不过,本文不打算讨论自由软件和开源软件的差异)
1991年的时候,GNU计划已经完成了GNU操作系统的绝大部分 组件,包括GNU C编译器(gcc),bash命令行终端和其他Shell命令行组件,以及Emacs文本编辑器等等。其他组件则有已经存在的自由软件来替代,比如X Windows系统来提供图形化桌面的接口。
然而,操作系统的内核——GNU Hurd内核——依旧没有完成。GNU计划非常冒险的选择了“微内核”设计架构(微内核是指将系统服务的实现,与系统的基本操作规则区分开来。它实现的方 式,是将核心功能模块化,划分成几个独立的进程,独立运行。可以减少系统之间的耦合度,易于实现与除错,也可增进可移植性。它可以避免单一组件失效,而造 成整个系统崩溃。Windows NT以及Mac OS均是微内核架构。——译者注,摘自维基百科“微内核”词条),也正因为选用了微内核架构造成开发周期异常漫长。(到2013年,GNU Hurd内核已经开发了23年依然没有发布稳定版)。
千呼万唤Linux来!
对GNU操作系统来说,缺失的最后一环就是内核(kernel), 同时这也是最重要的一环,可谓是“万事俱备只欠东风”。时间到了1991年,芬兰赫尔辛基大学的学生Linus Torvalds(林纳斯·托瓦兹)发布了Linux内核的第一个版本。将Linux内核、GNU软件以及X窗口管理系统整合在一起,就可以成为了一个完 整的且自由分发的操作系统了(就如同现在的“Linux发行版”)。
刚开始就已经有这种操作系统应该如何称呼的争论。1992 年,Yggdrasil计划用““Yggdrasil Linux/GNU/X”来命名其整合起来的软件。而Richard Stallman和自由软件基金会更加推崇使用“GNU/Linux”。Debian目前一直将其软件称为“GNU/Linux”。(Debian以其坚 守Unix和自由软件的精神,以及其给予用户的众多选择而闻名。现时Debian包括了超过37500个软件包并支持12个计算机系统结构。——译者注, 摘自维基百科“Debian”词条)。
不同的声音:GNU/Linux
GNU计划要开发一个叫“GNU”的完全自由的操作系统,而 Linux的绝大部分软件也是GNU计划提供的。然而这就出现了一个显而易见的问题,也正如Richard Stallman反对的,称之为“Linux”会泯灭GNU的意义以及其初始目标——一个完全自由的操作系统并为用户提供自由。而这也就与另一组争论交织 在一起了——“自由软件”和“开源软件”,“自由软件”这个称呼更加强调自由权力,而“开源软件”则关注于技术优势而淡化意识形态纷争。
正如2005年Richard Stallman在接受ZNET采访时所说:” 设计Linux的目的并不是为了解放网络世界,而且Linux的开发动机也并不会带给我们今天所看到的整个GNU/Linux系统。今天有数十万用户使用 这样的操作系统,他们因此而获得了自由——但他们却并没有意识到这一点,因为他们觉得这个系统就是Linux,而且是一个学生因为“只是觉得好玩”而开发 出来的。”
(1991年Linus Torvalds发布Linux内核第一版的时候是芬兰赫尔辛基大学研二的学生,第一次发布到新闻组的时候称其写Linux只是“Just For Fun”,后来他在2002年出版了一本自传,也取名为《Just For Fun》——译者注)
更多有关此的思考可以在GNU网站上找到。
不同的声音:Linux
而支持使用“Linux”这个称呼的人认为,仅仅关注GNU是个错误,那么基于同样的理由,众多发行版包含不同组织的软件那么就应该称为“Mozilla/KDE/Apache/X.org/GNU/Linux”。(这是典型的诡辩——译者评价)
大多数人仍旧使用“Linux”这个称呼。除非有更好的,因它简单易记,朗朗上口。且无论这理想的名字是什么,“Linux”都会是大多人对这操作系统的简称。你可以在这里看到“Linux”也能在别处看到,因为这对读者来说是能够第一时间就明白的称呼。
好了,我们以Linus Torvalds于1996年在新闻组里的话做结尾:“嗯,关于这个的讨论已经够多的了,非常感谢!对于公众来说,如何称呼Linux这根本就不算个事,只要可以自圆其说就够了(对双方而言)。从我个人的角度,我会非常乐意继续称之为Linux”。
如果想了解更多关于Linux的起源与发展,这里极客范推荐给大家 一个视频:Code Linux。视频中有包括Linus Torvalds、Richard Stallman、Alan Cox、Eric S. Raymond等一众大神现身说法,推荐给程序员和极客们。
原文: Chris Hoffman 翻译: 极客范 - 爱开源的贡献开源社区