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

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

【连载】《linux入门很简单》电子版——作者:刘金鹏(序:一切的起因2)相关推荐

  1. 【连载】《linux入门很简单》电子版——作者:刘金鹏(序:一切的起因3)

    1988 年,芬兰赫尔辛基大学迎来了一位新的大学生-- Linus Benedict Torvalds.当然,那时候他的名字在学校的花名册中并不显眼,但是一年后,他大二的时候,开始有故事了. 大学二年 ...

  2. 【连载】《linux入门很简单》电子版——作者:刘金鹏(1.4G大叔)

    经过漫长的等待之后,安装终于完成了.我总算离开了光盘,带着跟随我的那帮兄弟们在硬盘里落户了.用户随即发出命令:重启!我满怀信心的看着已经来到硬盘上的兄弟们:"我们就要开始一段新 的生活了,希 ...

  3. 【连载】《linux入门很简单》电子版——作者:刘金鹏(第一章初来乍到——启动)...

    在光驱中躺着,等待着电脑启动的时候,就像刚刚毕业的大学生 等待第一次面试一样紧张.每一秒钟过得像一小时一样,心里一直在 打鼓:怎么还不启动呢?难道看着光盘封面不好看就不打算用了?难道这小子忽然被女朋友 ...

  4. 【连载】《linux入门很简单》电子版——作者:刘金鹏(第一章初来乍到——入住)...

    终于开始安装,我要住进这电脑啦- 安装有七步. 第一步 跟启动一样,还得先问下用户打算使用什么语言.有人 说了,你这家伙健忘吧,刚才不是选过了么?别急,听我解释.刚才 选择的是从光盘启动的 LiveC ...

  5. 【连载】《linux入门很简单》电子版——作者:刘金鹏(第一章初来乍到——抵达)...

    2010 年的 4 月,我来到了这个世界,并由出生的月份得到了我的代--10.04,也就是 2010年 4月的意思.当然,和我同一天出生的兄弟们还有很多,我们都是 Ubuntu10.04linux设备 ...

  6. 踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)...

    1.前言与作者 首先声明,我是由于非常偶然的机会获得<C语言入门很简单>这本书的,绝对不是买的.买这种书实在丢不起那人. 去年这书刚出版时,在CU论坛举行试读推广,我当时随口说了几句(没说 ...

  7. mysql入门很简单系列视频-学习笔记

    mysql入门很简单系列视频-学习笔记 视频链接:mysql入门很简单系列视频 https://www.bilibili.com/video/av14920200/ 以前主要就了解DDL.DML.DC ...

  8. 简单php修改mysql数据类型_MySQL入门很简单—MySQL数据类型

    MySQL入门很简单---MySQL数据类型 一.整数类型: //类型名称字节数(长度)无符号数的取值范围有符号的取值范围 TINYNIT 1 (4)0~255-128~127 SMALLINT2 ( ...

  9. mysql入门很简单(一)

    之前一直都只会一些mysql简单的操作,对mysql的理解也不是很熟悉,找了很多mysql的基础书籍,也不是很理想,后来发现一本<mysql入门很简单>发现还不错,看了两遍,mysql基础 ...

最新文章

  1. 1 用python进行OpenCV实战之用OpenCV3实现图片载入、显示和储存
  2. javascript重置(base层)(。。。。不完整)
  3. SAP RETAIL 分配表功能的使用
  4. 小甲鱼OD学习第21讲
  5. postfix报错postfix: fatal: parameter inet_interfaces: no local interface found for ::1
  6. hhvm php5.6,PHP_5.5_/_PHP5.6_/_PHP-NG_和_HHVM_哪个性能更好?
  7. 配置IIS Express 7.5以允许外部访问
  8. JSP页面添加播放视频功能
  9. java web fileupload_javaweb 文件上传(fileupload) 下载
  10. 数据分析(一):数据的读写(文件、数据库)
  11. python基础数据结构,Python基本数据结构
  12. LinkedIn第三方登录
  13. Atitit 人工智能声音处理乐器总类以及midi规范的标示 目录 1. Atitit 乐器分类 打击乐器 1 1.1. 1.1. 打击乐器(各种鼓 三角铁等 1 2 1.2. 1.2. 管乐器
  14. mysql的delete语句使用exists删除数据走不通
  15. 通用技术 支付笔记之 PayPal 支付原理
  16. 终身学习C++__小胡亲测
  17. FZU11685 之 跑跑卡丁车
  18. 栈的输出_程序设计做题笔记:计算表达式(一):栈
  19. onlyoffice 搭建
  20. 使用循环完成剪刀石头布游戏

热门文章

  1. 【人生参悟】纸上得来终觉浅,绝知此事要躬行
  2. 「炼丹」AutoDL炼丹日记
  3. insmod: error inserting 'vivi.ko': -1 Unknown symbol in module 问题解决办法
  4. linux下微信/qq的aud、silk音频文件格式与mp3格式互转,获取音频时长的方法,附问题分析和java代码。
  5. Kubernetes:开源 K8s 管理工具 Rancher 认知
  6. Java使用阿里邮箱生成excle邮件附件发送
  7. 12.22 @烤仔建工 | 烤仔家具城建设中……
  8. Mesos+Marathon搭建部署
  9. 软件测试 | 测试开发 | Git实战(四)| Git分支管理实操,在线合并和本地合并
  10. 【干货】Kaggle数据挖掘比赛经验分享,陈成龙博士整理!