这回要说的是另一个传奇人物。

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年的事情。既然要做操作系统首先得有个明确的规划和 目标目标是什么这个操作系统要做成什么样子这当然是要向最成功的操作系统学习 哪个UNIXGNU计划中的操作系统将是一个类 Unix的操作系统。这个系统要使用与 Unix 相同的接口标准这样就可以由不同的人分期分批的创作操作系统的不同部分而不必担心相互之间协同工作的问题。

为了实施 GNU计划1985Stallman又创建了自由软件基 金会。基金会的主要工作就是执行 GNU计划开发更多的自由 软件。1989Stallman与基金会的一群律师们起草了广为使用的《GNU通用公共协议证书》也就是 GPL协议以此协议 来保证 GNU计划中所有软件的自由性。到了1990GNU计划中的这个系统已经初具规模有了很多的优秀的软件。其中有很多是世界各地的***们无偿提供的也有部分是利用自由软件基金会的基金雇佣程序员来开发的当然Stallman 自己也是身先士卒开发了 EmacsGccgdb 等重要软件。当他看着这些丰富的自由软件的时候感觉到 那清新自由的空气终于又回来了以后人们就可以拥有一个可以自由使用、自由修改、自由分发的自由的操作系统不过等一下好像还差点什么……差个内核吧

作为一个系统没有内核是不行的这么重要的部件 Stallman当然不会忘记所以才会有 Hurd内核。这个内核被设计为一个遵守 POSIX标准的微内核。所谓微内核是相对于宏内核来说的。宏内核就像我们现在的linux内核设计的艺术是一个独立的程序里面包含了进程管理内存管理文件管理等等功能。而微内核则将一个内核需要的功能尽量的简化并且拆分运行起来是几个独立的程序有的专门负责进程管理有的专门负责内存分配等等。内核是一个系统的核心所以至关重要StallmanHurd的开发也是精益求精非常谨慎以至于 内核的进度有些落后于其他的系统软件当其他软件都已经有比较优秀的版本的时候Hurd内核依然不能够走出实验室投入真正的使用。这种情况一直持续到1991另一个英雄的出现。

无论怎样到今天Stallman理想中的自由世界终于拉开了那沉重的幕布展现出了自由的光彩。而Stallman并不满足也确实没有满足的理由这个自由的世界还需要成长 还需要更加丰富多彩 还需要有更多的人走进这个世界中来。于是 Stallman奔走于世界各地 告诉人们有这么一个自由的世界号召人们加入这个世界鼓励人们为这个世界更加自由而付出自己的力量。他是一个执着的苦行僧为了他的梦想为了他的自由世界他会一直走下去……