该篇文章介绍了Richard M. Stallman创办FSF的历史,对有兴趣了解RMS、Hacker文化、自由软件理念及GNU GPL的背后动机的朋友有很大帮助。
有电脑的地方,你就听得到有人说:"这软件可真不赖,正是我要的""要我为你拷贝一份吗?"据美国SPA(Software Publisher's Association)估计,目前世界上在用的软件,有一半是非法海盗版,使得软件界每年损失20亿美元之多。
干这种坏事的,不只是满脸横肉的海盗,以及在亚洲大量复制之后再输入欧美的雅痞,真要怪的应该是我们所有人。常常办公室里买来一套文书处理程序,不用多久,就见所有电脑都在用;不然就是拷贝一份在家里和办公室,走到哪里都有得用。反正拷贝来的程序同样办事情,干什么要花钱买?
在麻省理工学院附近,自由软件基金会(Free Software Foundation,FSF)的董事长Richard M. Stallman(RMS)认为,是卖软件的公司,让他们的顾客选择干坏事的路子,而不劝他们的朋友自己去买合法的软件来使用。Stallman 说:"想想看,如果有人同你说:'只要你保证不拷贝给其他人用的话,我就把这些宝贝拷贝给你用。'其实这样的人才是魔鬼;而诱人当魔鬼的,则是卖高价软件的人。"
所以从六年前开始,Stallman成立这家基金会的主要目标,就是促进他的软件共用的想法。在一个软件共用的社会里,人人都可以拷贝软件给他朋友用!Stallman说:"我决定一定要干到底,即使是由我自己来写这样的软件都行。" 将一个一个的码拼成一套电脑软件,对大多数人而言是件难事,但是对Stallman 来说,就同张口喝杯水般容易。有人说,Stallman 应该算是世界上最伟大、软件写得最多的程序设计师,在他的努力和影响下,FSF已经推出成打的程序设计工具,其中有许多比市面上类似的商品优越得多,也广受欢迎。甚至一些有头有脸的厂家,如HP和DEC等,也采用过他的程序,纳入他卖给你我的电脑系统里。 程序中最有名的是EMACS,这是一种功能非常强的程序,在电脑界流传很广,很多人都在用它;EMACS可让程序设计师从事广泛的工作:由编辑档案到玩游戏,使用者可以轻易地任意去修改它,也可以把自己的创意加进去。 Stallman 不单自己一个人在叫着自由的软件的行动,他已经煽出一阵风,让许多人都支持他,为他撰写自由软件并提供帮助。虽然由这些人所撰写的大部份程序,只是现有自由软件的一些修改版本而已,但也有不少程序是有计划地开发出来的,而且一切都免费,你尽可拷贝去送人,不必怕像Bill Gates等拜金主义者会来找碴。
业界支持Stallman 和FSF 的有心人士和厂家,已陆续提供价值60万美元的现金和设备。去年夏天,Stallman 还获得MacArthur基金会所颁赠的天才大奖(Genius Grant),以表扬他在推动自由软件上所做的努力。 Stallman说,他要做出一系列优秀的自由软件,好到让厂家们只要不用它就会倒店的程度!他希望由这项努力,把使用者从电脑软件教父和暴发户们手中解救出来,重见当年玩家们(hackers)的理想。 每道程序都包括一些绝对不能有错的指令,及一些对指令的解释。所谓的指令和解释,被写程序的人统称为"source code"。在早期电算时代,厂家卖软件时,也包括source code,才能让懂得程序设计的人知道,买来的程序是如何做事的,当然也可以修改它,好修理程序的毛病(bug)和添加些自己想要的新功能,甚至也能把程序的某些部份切开来重新组合。
但70年代和80年代里,软件市场暴增,厂家们开始不让人知道所用的source code,怕对手一夜之间将它改头换面,把原作吞了下来。Richard Stallman 认为,这可是大错特错;把source code让大家知道,正是他推动自由软件运动的重心。他常常用两台激光打印机的事,来解说source code必须公开的重要性。 Stallman 从1971到1983年,在麻省理工学院的人工智能实验室从事研究工作。70年代的激光打印机大得同辆新坦克一样大,所以Xerox送了一台Xerox Graphic Printer给AI实验室时,人们发现唯有AI实验室的九楼机房里,才找得到位置放它。实验室的人把它连上AI实验室自己开发的区域网络,于是在大楼里所有的人只要在各自的电脑上打些指令,就可以叫那台巨无霸打印机帮你服务。 它的列印速度蛮令人满意,只是有时纸印光了或夹了纸,一大堆人的列印工作就全部停了下来。有时有的人要印上一大堆东西,而有些人只要印一两张时,不得不爬上九楼,把打印机的控制改一下,使它先印一两张。于是一天就这样爬上爬下,没有人受得了。 幸好打印机送来时,Xerox把驱动程序的source code也随机附上,实验室的人就把控制打印机的驱动程序等功能作了些修改,于是大家都省了不少麻烦和汗水。Stallman 回忆地说:"把你要的列印做完了之后,它还会通知你;如果夹了纸或你想问些什么列印上的事情,它也会让你知道。" 到了1978年,一切都变了,Xerox再送了一台叫Dover的新机给AI实验室,但不愿再附上source code。Stallman 说:"因此我们没办法修改Dover的程序,于是整个大楼的列印效率又回到从前,Dover卡了纸或把纸印光了,你在下面也不知道。"
所以把source code收起来,不愿让买程序的人得到,所造成的不只是在打印机上的影响而已;例如一位炒房地产的人所用的会计程序,只能帮你处理十件房地产的帐目,如果你多出三家新房子的生意时,你的电脑程序就没法处理多出来的帐目。因此,若你没有程序的source code,你就是想请位程序高手来帮你修改,也没办法下手;唯有拥有source code的业者,才能为你提供修改,及给你新的版本。就像你买了一辆车,但只准一位机械师才能修理它,而他又住在另一个城里,一旦车子坏了就很麻烦。 当然,消费者可另选一种程序来用,但一般用电脑的人都有惰性,一旦用惯了某个软件,就不容易改变,况且还得花时间(即是金钱)去学用新的程序,吃亏的都是使用者。大部份程序资料都是用一种专属性的格式储存起来,而不与其他程序的格式相容,所以有时即使所用的程序有些问题,使用者也无多大意愿去改用其他程序。 直到最近,人们仍然碰上同样的问题:老在换用电脑和程序;这问题当然是出自作业系统。来自IBM的电脑,用的OS是VM,而Prime电脑却用PRIMOS;DEC则有成堆的OS,而且有时一种电脑有多种作业系统。
对硬件业者来说,这可是笔好生意,就像抱了一只会生金蛋的鸡一样。因为即使开拓不了新市场,业者仍然捉住一群不得不再买同牌子电脑的使用者,来跑他已经投资不少银子买的应用软件;到时业者开价多少就是多少,客户只好一直被业者牵着鼻子走。以客户的观点来看,事情就是这么回事,人生也就是如此,除了乖乖的交钱之外,一点法子也没有。但对做电脑研究的人来说,这种封闭式系统,简直是个大灾难,如果某人在一种电脑上写了个程序,你就没法在其他电脑上用它。 于是人们开始大谈open system,企图让使用者把各家厂牌的硬件、软件混起来用,使得电脑业界走上一条新的路子;相容性使得客户得到更多的服务和产品;而相互竞争也把产品价格压低下来。 所以,事实上开放系统就是Stallman想解放软件的想法;虽然不见得一切都是源自于他一个人的想法。而开放系统的实质,在于叫做UNIX的作业系统,和叫C的程序语言,这点看『热讯』的朋友比我还要懂,二者都是源自于70年代的贝尔实验室(Bell Labs)。 AT&T的Ken Thompson和Dennis Ritchie开发出UNIX,使它成为写程序的人梦想成真的作业系统。整个UNIX是由一些小的程序tool所组成,每个tool都有一定的功能,把这些tool组合起来,写程序的人就可叫电脑做出相当复杂的事情来。 但在UNIX上,仍然有不相容的问题。比如在DEC电脑上,用C所写的UNIX,与在IBM上的作业系统仍有少数的差别,与Honeywell的作业系统又有些不一样。所以在一个电脑上的UNIX所需的程序,也不见得能在另一种机器上用。
直到1976年,Thompson和Ritchie才突破这项困难。他们认为,虽然程序用C写是个不错的好主意,但仍然不够好。于是两个人干脆开始用UNIX,完全取代电脑原有的专属性作业系统;也就是将所有采用开放系统的电脑,都直接以UNIX为作业系统。这点子现在看起来,根本是天经地义,但在当时,每种电脑都有它各自的作业系统,所以他们的想法的确相当偏激且具高危险性。 打从那时开始,UNIX已不只是个研究上的好材料。1973年,贝尔实验室里大约有25台电脑开始跑UNIX,不久UNIX就从这家电话公司扩散出来,到了1977年,已有500多处地方的电脑在用UNIX,包括125家大学,在柏克莱的加州大学就是其中之一。 UNIX在柏克莱开始走向新的里程碑,也显示如果使用者可用到source code,就可发展出一大堆文化来。当时和其他学校一样,柏克莱得花400美元,向贝尔实验室购买放在磁带里的UNIX系统和source code。但大学里的人不单只是去用它,两位杰出的研究生Bill Joy和Chuck Haley开始修改UNIX。1977年,Joy散出去30份免费的BSD(Berkeley Software Distribution)UNIX版本,包括UNIX本身、一些程序及修正版本在内。 以后的6年里,BSD UNIX本身发展成为一套完整的单独软件,而功能也比原来AT&T的版本好得多,例如BSD UNIX有多工功能,同时执行不同的应用程序;AT&T的UNIX要求档案名称只能有14个字母;但柏克莱的版本可长达255个字母;而且加州柏克莱也为UNIX电脑开发出高速网络系统。如果两者真的比一高下,一定是BSD UNIX盖过原来的UNIX。但加州柏克莱对外只收拷贝的工本费而已,从不多收你的血汗钱。