在我们行业中,有一个广为流传的英雄故事:
“一个来自芬兰的大学生,由于没有足够的资金购买UNIX,决定自己开发一个类似的操作系统。1991年,他凭一己之力发布了Linux内核的第一个版本。”
这就是Linux之父Linus Torvalds。
他还是Git这个版本控制工具的创始人。如今,使用GIT管理代码已经成为绝对的主流。
对于这样的人,我只能用一个词来形容,那就是“天才”。
我非常崇拜他,但今天我想讨论的是:
Linux是否应该被称为Linux
本文是关于自由软件与开源软件的趣谈系列的第三篇,其它文章包括:
趣谈自由软件与开源软件(一):什么是自由软件 趣谈自由软件与开源软件(二):自由软件与开源软件的分歧
是谁提出了这个问题?大多数人都称这种操作系统为Linux,这似乎已经成为主流。
那么,究竟是谁提出了这个问题,为什么大家都接受的事实又会引发争议呢?
提出这个问题的是GNU运动阵营的一些人,他们认为:
称这种操作系统为Linux是不公平的,称之为GNU/Linux可能更为公正
自由软件之父,GNU运动的发起人Richard Stallman还专门写了一篇文章来支持这一提议。
当然,这个提议并不是毫无根据的,背后确实有一定的理由。
那么,这到底是怎么回事呢?让我们从Linux操作系统的组成开始说起。
Linux操作系统的组成 操作系统是相对于硬件而言的,它是一种软件。
对于大众来说,他们对操作系统的认知大致如下:
大多数人可能认为,硬件与操作系统可以分为三层:
硬件层。操作系统的能力都是建立在硬件之上的。 系统层。操作系统自带的一些基本能力和软件。比如Windows的服务管理,自带的IE浏览器等。 第三方生态。基于操作系统提供的扩展能力,开发并供大众使用的软件。比如QQ,微信等。 这种理解也不能说完全错误。
但如果按照这种理解,我们的大神开发的东西在Linux系统中似乎没有任何立足之地,也就是说,整个操作系统与我们的Linus Torvalds大神开发的东西没有任何关系。
当然,这不是事实。
可能有相当一部分人,甚至是程序员群体中也存在这样的误解,认为Linus Torvalds开发了整个Linux操作系统。
严格来说,这不是事实,Linus Torvalds开发的其实是:Linux内核。
那么,Linux内核在操作系统中到底处于什么地位呢?
Linux内核 简而言之,Linux内核是硬件与软件之间的中介。因此,它被称为内核。
内核是计算机硬件与其进程之间的核心接口。它负责两者之间的通信,并且要尽可能高效地管理资源。
内核不仅存在于Linux中,任何系统,包括大家使用的Windows,也有内核。只不过内核是在背后支撑性的,我们在使用操作系统时几乎不会接触到内核,所以对它可能不太熟悉。
我们的Linus Torvalds大神开发的其实是Linux内核。
因此,一个操作系统严格来说,是这样组成的:
那么,我们使用的Linux系统除了内核这个看不见的东西之外,到底那些系统服务及软件是从哪里来的呢?
GNU + Linux内核 = Linux操作系统 我在前面的文章中提到,自由软件之父早在1983年就发起了GNU计划与运动,计划编写一个完全自由的,替代UNIX的操作系统。
如上所述,一个操作系统包括很多东西,有内核,有系统的一些必备组件,还得有UI界面,甚至是游戏。
在Richard Stallman发起这个GNU运动时,还是1983年,那个时候可没有Linus Torvalds的事。
事实上,GNU确实是一项伟大的工作,与Linus Torvalds独自开发一个内核不同,GNU运动是一群杰出的、有理想的程序员共同参与的事情。
在GNU运动中,它们规划了操作系统所需的方方面面的东西,也包括内核,甚至是游戏。
今天你使用的Linux操作系统,以下一些你可能熟悉的部件,其实是属于GNU的成果。
最著名的,GNOME是GNU的一部分,因为一个操作系统需要UI。 编译器套装GCC,GNU的C库glibc。 Bash,是GNU的UNIX兼容Shell。 GRUB,统一引导加载程序。 著名的Emacs,nano等编辑器,GIMP图像处理工具等。 这个列表其实还很长,当然最重要的是GNU其实是有自己的内核计划的,那就是Hurd。
但是,GNU自己计划的内核Hurd始终没有稳定,一直在开发中。而在1991年,众所周知,Linus Torvalds开发了Linux内核。
于是,把GNU的已开发出来的东西和Linux内核一整合,最终推动并发展出了现在的Linux操作系统。
所以,严格来说,Linux操作系统 = GNU + Linux内核,并且以代码量占比来说,一个Linux发行版本中,可能GNU的代码量占到28%左右,而内核代码量是3%左右。
那么,你应该明白为什么GNU阵营有人这样主张了吧。这确实有一定的道理。
他们主张应该把这样的操作系统称呼为:GNU/Linux,这才是更公平的,体现并尊重了GNU运动做出的贡献,更重要的是传播了自由软件的理念。
不过,这个是有争议的,Linux社区对此并未形成统一意见。大多数人可能仍然认为沿用Linux更好。包括Linus Torvalds。
我的看法 文化是约定俗成的,但不代表它是正确的。
名称其实也是文化的一种,名称不正确但却被大家接受,属于约定俗成的,这种例子也不少。
从Linux操作系统上来说,考虑到尊重GNU运动及背后的程序员做出的贡献来说,使用GNU/Linux的确是个更正确的名称。
但如我所说,文化并不是完全正确的,它只是约定俗成的。在大众甚至是程序员群体,已经基本接受Linux这个名称的前提下,改变它的名称并因为这一点引发太多争议我认为并无太多必要。
所以,对于那些愿意称它为GNU/Linux系统的群体来说,比如Debian,它就称自己是GNU/Linux系统,我们应该非常欢迎。而对于仍然愿意沿用Linux或主流称为Linux的,我觉得也很合理。
我认为,更重要的事情是,宣扬GNU及其背后的自由软件的理念,才是更需要去做的一件事情。
至于去讨论Linux内核和GNU那些软件,哪个更重要,这种争议并不会产生什么实质价值,只会分裂不同群体而已。
所以,我在了解了自由软件及其背后的GNU运动后,就决定写下这个系列,我认为可能有非常多的程序员,特别是在国内程序员,对自由软件或GNU并不是非常了解,希望我的文章能让更多人知道GNU及其背后的自由软件运动。
一个非常奇怪的事情是,基于GNU的大多数主流Linux并不被认为是完全自由的操作系统,这是怎么一回事?
下一篇:趣谈自由软件与开源软件(四):为什么主流的Linux发行版本不被认可为完全自由的操作系统
以上就是趣谈自由软件与开源软件(三):一个名称的争议,究竟是该叫Linux还是GNU/Linux的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号