这回要说的,是另一个传奇人物。
Richard Stallman,1953 年出生在美国纽约曼哈顿地区,他从一出生就……没什么特别;他上小学的时候……反正我不认识他;等到他上初中的时候呢……也还没我呢。总之,他在生命的前十几年中并没 有表现出什么过人的地方,因为他没遇到一个叫做电脑的东西。
高中的一个暑假,他去给IBM打工,花了两周的时间用 Fortran语言编了一个数据处理的程序。这是他第一次接触计算机,或许就是 这次相遇,确定了他未来行走的方向。后来,1971年,他考上了哈佛大学,听说这学校不错,怎么也得是个区重点吧。上学的同时,他还受聘于麻省理工学院的人工智能实验室,成为了一名职业***(***这个词没有贬义)。也不知道他哪来的那么多时间,可能也是把毛概 和邓论都翘了吧。在人工智能实验室的期间,他可没少干活,开发了 很多有用的软件,其中最著名的就是 Emacs编辑器。Emacs是一个可与vi相抗衡的强大的编辑器,他们俩的操作方式完全不同,但却同样 强大,各自用自己独有的方式,提高着人们的编辑效率。直到今天,仍然总有人争论到底 emacs好还是vi好,信奉emacs的人和信奉vi的人形成了两个帮派,这俩帮派经常在大街上用板砖菜刀拼个你死我活。哦,扯远了,咱还回来说 Stallman。
那时候的 Stallman在人工智能实验室里工作的非常 Happy,大家有BUG同担,有代码共享。软件工程师的世界,是一个人人为我,我为人人的世界。因为咱说过,最初的计算机就像我们的算盘一样,只是一个硬件,没有软件的概念。后来随着电子管、晶体管的发明,计算机的电子成分才超越了机械成分,逐步演化成了现在的电子计算机, 在这个过程中,出现了软件,并起到越来越重要的作用,最终成为了计算机的灵魂。而最初的计算机软件没有什么开源不开源的概念,因为那时候软件天生就是 自由的!卖计算机的同时会附带软件,包括软件的源代码和文档。用户可以根据自己的需要去进行修改软件,与别人分享软件,总之,软件是用户花钱买硬件时附带着买来的,用户想怎么玩就怎么玩。软件开发者的目的,也不是靠软件赚钱,而是靠软件支撑起硬件的功能,然后卖硬件赚钱。然而随着技术的发展,软件逐渐脱离硬件成为一个独立的产业,很多软件慢慢的只提供二进制代码而不提供源码了,这就意味着你不能修改它,并且多数还规定最终用户没有二次分发的权利。也就是说,这东西你买了,只能你用,你再给别人,不行!这就好像我买了把菜刀,然后卖菜刀的告诉我“你这把菜刀不许借给你的邻居用,也不许私给菜刀换刀把,否则我就告你!”……囧,你管的着么!?
Stallman 当时就遇到了类似这样的菜刀问题。那时候,他们实验室买的第一台打印机附带有驱动程序的C语言源代码。他们那的***们可以随意修改这个驱动,根据自己的需要添加些小功能啊,改改bug啊之类的,这为他们的工作带来了很大的方便。后来,实验室又买了一台激光 打印机,这次厂商只提供了二进制的打印机驱动程序,它是实验室里仅有的一个没有源代码的软件。出于工作的需要,Richard Stallman想修改一下这个驱动程序,但是不行啊,没源码啊。后来Richard Stallman听说卡内基·梅隆大学有这个打印机的驱动程序源代码,他就去了那 里,对他们说:“那啥,大家都是道上混的,谁还没个马高蹬短的时候?是兄弟的拉哥们一把, 我也没啥事儿,就是我们那打印机老丢字,一遇到什么敏感的字眼就给我打成口口,我估计是驱动的问题,听说你们这有这驱动的源码,能不能给我拷一份?”对方办事效率还是挺高的,很干脆的拒绝了他。因为他们和厂商签署了一份保密协议,协议要求他们不能向别人拷贝源 代码。顿时 Richard Stallman感到他们背叛了自由的计算机社团,他非常生气,但是他选择了沉默。这只是一件小事,只是一个时代的缩影。那个时代,正处在软件向私有化转变的过程中,越来越多的软件选择了不开放源代码,不允许二次分发的发布方式。甚至 Stallman身边的同 志们也都一个一个都跑到那些靠卖私有软件挣钱的公司去打工了。而 Stallman依然沉默。
不在沉默中爆发,就在沉默中灭亡。
Stallman 爆发了!
他不能容忍软件世 界里清新自由的空气被私有软件污染的乌烟瘴气;他不能容忍被剥夺 按照自己的需求修改软件的权利和乐趣;他 不能容忍自己买条皮带尺寸不够,他竟然连自己在上面多打个洞的权 利都没有!
于是,他爆发了。他要重现当年那人人为我,我为人人的合作互助的软件世界;他要把使用、复制、研究、 修改、分发软件的权利还给每一个软件世界的人民;他要用自己的行动告诉人们,软件天生 就该是自由的!他要开辟一个新的世界,哪怕是一个人在战斗!于是,一个宏伟的计划在他 心中产生——GNU计划。它的目标是创建一套完全自由的操作系统,因为操作系统是电脑中 最重要的最基础的软件,要创造自由的软件世界,自然先要有一套自由的操作系统,然后再 以此系统为中心,开发各种各样自由的软件。Richard Stallman最早是在 net.unix-wizards新闻组上公布了 GNU计划,那是 1983年的事情。既然要做操作系统,首先得有个明确的规划和 目标,目标是什么?这个操作系统要做成什么样子?这当然是要向最成功的操作系统学习, 哪个?UNIX!GNU计划中的操作系统,将是一个类 Unix的操作系统。这个系统要使用与 Unix 相同的接口标准,这样,就可以由不同的人,分期分批的创作操作系统的不同部分而不必担心相互之间协同工作的问题。
为了实施 GNU计划,1985年,Stallman又创建了自由软件基 金会。基金会的主要工作就是执行 GNU计划,开发更多的自由 软件。1989年,Stallman与基金会的一群律师们起草了广为使用的《GNU通用公共协议证书》也就是 GPL协议,以此协议 来保证 GNU计划中所有软件的自由性。到了1990年,GNU计划中的这个系统已经初具规模,有了很多的优秀的软件。其中有很多是世界各地的***们无偿提供的,也有部分是利用自由软件基金会的基金雇佣程序员来开发的,当然,Stallman 自己也是身先士卒,开发了 Emacs,Gcc,gdb 等重要软件。当他看着这些丰富的自由软件的时候,感觉到 那清新自由的空气,终于又回来了,以后,人们就可以拥有一个可以自由使用、自由修改、自由分发的,自由的操作系统!不过等一下,好像还差点什么,哦,还……差个内核吧?
作为一个系统,没有内核是不行的,这么重要的部件 Stallman当然不会忘记,所以才会有 Hurd内核。这个内核被设计为一个遵守 POSIX标准的微内核。所谓微内核,是相对于宏内核来说的。宏内核就像我们现在的linux内核设计的艺术,是一个独立的程序,里面包含了进程管理,内存管理,文件管理等等功能。而微内核则将一个内核需要的功能尽量的简化并且拆分,运行起来是几个独立的程序,有的专门负责进程管理,有的专门负责内存分配,等等。内核是一个系统的核心,所以至关重要,Stallman对Hurd的开发也是精益求精,非常谨慎,以至于 内核的进度有些落后于其他的系统软件,当其他软件都已经有比较优秀的版本的时候,Hurd内核依然不能够走出实验室投入真正的使用。这种情况,一直持续到1991年,另一个英雄的出现。
无论怎样,到今天,Stallman理想中的自由世界,终于拉开了那沉重的幕布,展现出了自由的光彩。而Stallman并不满足,也确实没有满足的理由,这个自由的世界还需要成长, 还需要更加丰富多彩, 还需要有更多的人走进这个世界中来。于是 Stallman奔走于世界各地, 告诉人们有这么一个自由的世界,号召人们加入这个世界,鼓励人们为这个世界更加自由而付出自己的力量。他是一个执着的苦行僧,为了他的梦想,为了他的自由世界,他会一直走下去……
转载于:https://blog.51cto.com/hudongwang2013/1246543