《大话Linux》第三话:Linux与GNU

        在这里,让我们讲讲Linux的那些事儿~~

        这是讲解Linux相关历史,相关人物的文章,不会涉及太多的技术~~


         现在我们一提Linux,大家想到的就是Linux操作系统,但是大家知不知道,Linux其实只是一个内核,Linux操作系统的官方叫法是GNU/Linux操作系统,这就像开车的朋友都把行车制动器叫刹车,驻车制动器叫手刹一样,习惯成自然以后,大家反而忘了刹车的官方叫法,一说行车制动器,可能很多人就会一脸茫然,脚不知往哪放了。


        那么这个GNU是啥呢,为什么很少被人提及呢?好,请大家坐好,咱们又要开始讲历史课啦。

        GNU是一项工程的名称,它是由一个叫理查德·马修·斯托曼Richard Matthew Stallman)的人于1983年9月27日发起并创建的,旨在开发一个完整的由自由软件构成的类Unix操作系统—— GNU 系统。GNU这个名字是 “GNU's Not Unix!” 的递归首字母缩写词。理查德·斯托曼生于1953年3月16日,双鱼座,是美国自由软件运动的精神领袖、GNU计划以及自由软件基金会(Free Software Foundation,FSF的创立者。作为一名著名的黑客,他的主要成就包括Emacs及后来的GNU EmacsGNU C 编译器GDB 调试器。他所写作的GNU通用公共许可证(GNU General Public License, GNU GPL)是世上最广为采用的自由软件许可证。那么理查德·斯托曼为什么要自己搞一个类Unix的操作系统呢?和林纳斯·托瓦兹一样,也是出于想进一步学习Unix的目的吗?答案是否定,理查德·斯托曼要搞一个GNU操作系统,主要是不满于当时软件的商业化,在第二话中我们提到了,在八十年代,Unix已经开始商业化了。 理查德·斯托曼出生于美国纽约曼哈顿地区的犹太人家庭,1971年进入哈佛大学学习,同年受聘于麻省理工学院人工智能实验室(AI Laboratory),成为一名职业黑客。在AI实验室工作期间,斯托曼开发了多种今后影响深远的软件,其中最著名的就是Emacs。斯托曼在AI是一名典型的黑客,是整个黑客文化的一份子。黑客文化的一部分就是大家彼此分享开发的软件,然而进入八十年代后,黑客社群在软件工业商业化的强大压力下日渐土崩瓦解,甚至连AI实验室的许多黑客也组成了Symbolic公司,试图以专利软件来取代实验室中黑客文化的产物——可自由流通的软件。斯托曼对此感到气愤与无奈。在对Symbolic进行了一段时间的抗争后,他于1985年发表了著名的GNU宣言(GNU Manifesto),正式宣布要开始进行一项宏伟的计划:创造一套完全自由,兼容于Unix的操作系统GNU。之后他又建立了自由软件基金会来协助该计划。他于1989年与一群律师起草了广为使用的GNU通用公共协议证书,创造性地提出了“Copyleft”的概念。 同时,GNU计划中除了最关键的Hurd操作系统内核之外,其他绝大多数软件已经完成。


理查德·斯托曼

         如果把 理查德·斯托曼要开发的GNU操作系统比作一辆汽车,那么 理查德·斯托曼已经造好了这辆汽车的绝大部分,但是最最核心的东西——发动机还没有,所以这辆车还发动不起来,就在这万事具备,只欠东风的情况下,东风从北欧的芬兰赫尔辛基吹来了, 林纳斯·托瓦兹 在GNU通用公共许可证下发布了自己创作的 Linux 操作系统内核,暂时替代了GNU计划的Hurd内核。至此,GNU计划基本完成。Linux内核+GNU软件就构成了一个完整的GNU/Linux操作系统,由于Linux内核是其中最关键的部分而且被越来越多的人所知道,这个系统就被简称为Linux系统。但是这种简称惹怒了 理查德·斯托曼,因为他发现, 林纳斯·托瓦兹的风头竟然盖过了自己,自己辛辛苦苦发展起来的GNU运动,竟然被一个毛头小伙子抢了风头,大家在说Linux操作系统的时候竟然完全忽视GNU的功劳,没有GNU的gcc编译器及其它免费软件工具和应用程序,怎么会有Linux,这种被人当做空气的事情真的是一种侮辱啊,所以 理查德·斯托曼一直致力于将Linux更名为GNU/Linux。
        
        关于理查德·斯托曼和林纳斯·托瓦兹,我想到了一种贴切的形容,那就是“长江后浪推前浪”,理查德·斯托曼和林纳斯·托瓦兹都是伟大的黑客,但两人却有着极大地不同,理查德·斯托曼是一个理想主义者,他把建立一个自由的软件世界最为自己的毕生信仰,他认为软件理应被大家共享,而不应被少数人私有,成为他们牟利的工具。而林纳斯·托瓦兹则是一个实用主义者,“不管黑猫白猫,抓到老鼠就是好猫”。只要某种做法对Linux有利,他就不反对。所以,虽然是在他们的共同智慧下诞生了GNU/Linux操作系统,但两个人却不是什么亲密的伙伴,相反,两个人却彼此看不惯,理查德·斯托曼非常反感林纳斯·托瓦兹同意RedHat之类的公司将Linux商业化,林纳斯·托瓦兹则认为理查德·斯托曼是一根筋,太死板。

        最近的一个GNU系统版本,是于2011年4月1日释出的GNU 0.401,采用GNU Hurd作为操作系统内核。早期GNU Hurd是由卡内基美隆大学的 Mach 3.0发展而来。但在1994年,卡内基美隆大学中止了Mach计划,自由软件基金会转而以犹他大学的Mach 4来作为GNU Hurd的微内核。但在犹他大学也中止了Mach计划后,自由软件基金会于是根据Mach 4,继续发展出GNU Mach。1996年12月6日,由Thomas Bushnell对GNU Mach提出第一个修改,正式建立了GNU Mach。Hurd基于GNU Mach作微内核进行开发,这是由Richard Stallman做出的技术决定,他原本认为可以借此加速操作系统的开发。但他在之后承认这是个错误。林纳斯·托瓦兹曾说过如果GNU内核在1991年时可以用,他就不会自己去写一个。这里简单提一下Linux内核是单内核,而且林纳斯·托瓦兹是极力反对微内核的设计。关于单内核与微内核,我们后面可能会单独讲一讲,里面也有有趣的故事。

        所以GNU/Linux操作系统就是使用Linux内核的GNU操作系统,GNU/Hurd操作系统就是使用Hurd内核的GNU操作系统,你可以理解为同样地车身,不一样的发动机。其实,很多人有这样的疑问,为什么当年理查德·斯托曼不先写一个内核呢,这是因为你不能什么都没有就直接去编写一个内核,要开发一个内核,你至少要有一个GNU的文本编辑器编写代码,一个GNU的编译器编译代码和一个GNU的调试工具调试代码,而理查德·斯托曼先做的就是开发了Emacs,GNU C编译器和GDB调试器。而林纳斯·托瓦兹则使用理查德·斯托曼开发的工具开发出了Linux内核。内核的开发,就像发动机的制造一样,不是一件简单的事情,时至今日,GNU也没有搞出像样的内核,所以在内核方面,林纳斯·托瓦兹的确是高人一等,但是,话说回来,如果没有理查德·斯托曼的铺路,没有了得力的开发工具,林纳斯·托瓦兹的内核开发也会曲折得多。
GNU/Linux爱好者设计的宣传图,并使用GPL授权

        GPL最初由理查德·斯托曼为GNU计划而撰写。此许可证最新版本为“第3版”(v3),于2007年6月29日发布。GNU宽通用公共许可证(GNU Lesser General Public License,一般简称LGPL)是改自GPL的另一个版本,其目的是为了应用于一些软件库。GPL给予了电脑程序自由软件的定义,并且使用“Copyleft”来确保程序的自由被完善的保留。

        关于那个GPL许可,由于文本太长,我就无法贴出了,这里给出它的超链接,感兴趣的朋友可以自己去查阅。

        下面给出Unix和Linux的进化图谱:
Unix & Linux进化图谱


        欢迎收看《大话Linux》第四话:那些年我们一起追过的Linux发行版。


       Linux内核官方网站:http://www.kernel.org/
       GNU官方网站:http://www.gnu.org/
       自由软件基金会官方网站:http://www.fsf.org/
       Linux社区网站:http://www.linux.org/
       开放源代码官方网站:http://opensource.org/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值