分享
 
 
 

GNU操作系统与自由软件运动

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

最初的软件共享群体

1971年,当我开始在麻省理工学院人工智能(AI)实验室工作时,我成了那里

软件共享群体的一分子,这个软件共享群体已经存在多年。其实,软件的共享并

不限于我们这一特定的群体,它的历史与计算机一样长久,这两者之间的关系就像

人类很早就交换食谱与烹饪一样。但我们做得比大多数人都做得更多。

AI实验室当时使用了一种称为ITS(Incompatible Timesharing System,非兼

容分时系统)的分时操作系统,这是我们实验室工作人员专为Digital PDP-10(那

个时代的大型计算机)设计的操作系统,而且是用汇编语言开发的。作为这个群体

的成员,我是一个AI实验室的系统黑客,我的工作就是完善这一系统。

当时我们并不把我们的软件称为“自由软件”(free software),因为这个词

语当时还不存在,但事实上那就是自由软件。每当其他大学或者公司的人要求移植

或者使用我们的某个程序时,我们总是应允的。如果你看到某人在使用一个陌生而

且有趣的程序时,你总可以要求查看它的源代码,以便可以读代码、对源代码进行

修改、或者套用原代码的一部分来创作新程序。

群体的崩溃

八十年代年代初,Digital公司停止了对PDP-11系列的开发,那时情况发生了巨

变。以六十年代的标准来看,PDP-11系列的体系结构是精巧和强大的,但无法自然

地适应八十年代的技术所允许的更大寻址空间。这意味着,几乎我们所有的程序,

包括ITS,都一下子报废了。

在这前不久,AI实验室的黑客群体已经分崩离析。1981年,从实验室分离出去

了一个公司,名为“Symbolics”,几乎雇走了所有的黑客,剩下的群体盛况难再。

Steve Levy编写过《黑客》一书,这本著作十分传神地描述了这个群体鼎盛时期的

情况。当AI实验室于1982年购置了一台新的PDP-11机器时,系统管理员决定使用

Digital的非自由分时系统,而不是ITS。

那个时代的流行计算机系统,如VAX和68020,都有自己的操作系统,但这些系

统都不是自由软件:即使为了获得机器码可执行程序的拷贝,也应该签署不公开协

议(nondisclosure agreement)。

这就意味着,你开始使用计算机的第一步就是要保证不帮助你身边的人。相互

协作的群体是被禁止的。专有软件(proprietary software)所有者制订的规则是:

“与他人共享软件就是盗版行为;如果你需要对程序作任何修改,磕头央求我们吧。”

专有软件社会系统(即声明用户不能分享或修改软件的系统)的观念是反社会

的、不道德的、完全错误的。这一观点可能会让一些读者惊诧不已。但是,对于一

个基于分裂公众、使用户孤立无援的价值系统,我们还能说些什么呢?对这一观点

感到难以接受的读者,可能早已对专有软件熟视无睹,或者从专有软件工业的角度

出发才作出了这样的判断。这也难怪,因为软件出版商已经长期为此努力工作,以

使人确信对于这一事情只能有一个观察角度。

软件出版商谈到“确保”他们的“权益”,或“禁止盗版行为”时,他们实

际上所说的东西是次要的。他们在版权声明中真正传递的信息却是他们认为不言自

明的假设,公众似乎应该不加批判地接受之。现在让我们来逐条地检查这些假设。

假设之一,是软件公司具备无可置疑的自然权力占有软件,从而有权凌驾于所

有用户之上。如果这确实是一种自然权力的话,那么无论它对公众有多大的伤害,

我们都无法反对。有趣的是,美国的宪法和司法传统拒绝这种看法;版权并非一种

自然权力,而是一种人为的、由政府强行实施的一种垄断,以限制用户拷贝的自然

权力。

另一种没有挑明的假设是,软件的唯一重要意义在于软件可以允许用户做什么

——而我们计算机用户不应该关心我们必须接受什么样的社会。

第三种假设是,如果不允许某个公司凌驾于其软件产品的用户之上,我们就不

会有任何可用的软件,或者永远不会有所需要的软件去完成这样或那样的特别任务。

这个假设一度显得颇有道理,但是后来的自由软件运动表明,我们可以创造出足够

多的有用软件,而无须加以一连串的限制。

如果我们拒绝接受上述假设,并将用户置于优先的地位,从普通的、常识性的

道德价值出发审视这些问题,我们就会得到截然不同的结论。计算机用户应该可以

自由地修改程序以适应他们自己的需求,可以自由地共享软件,因为帮助他人是社

会存在的基础。

这里没有足够的篇幅容纳得出这一结论的详细逻辑推理,因此我推荐你阅读我

们的Web主页,http://www.gnu.org/philosophy/why-free.html。

艰难的道德选择

虽然我原来的群体已经消失,但继往开来并非不可能,只是我面临一个道德选

择。

一条简单的出路是加入专有软件世界,签署不公开协议,并许诺不再帮助我同

事中的黑客。这样做的结果很可能是我也开发软件,而且软件也以不公开协议的形

式发布,从而对其他不愿意背叛同伴的人进一步施加压力。

我有可能由此而发财,而且也从编写代码中获得乐趣。但我明白,在我的职业

生涯结束时,我回过头来看到的景象将是这些年来筑起高墙林立,并将人们分隔开

来,我会觉得自己的一生努力的结果会把这个世界搞得更糟。

在此之前,我已有过接受不公开协议的经验。当时,别人拒绝向MIT人工智能

实验室和我提供我们打印机的控制程序的源代码。该程序缺乏某些功能,打印机的

使用起来极端麻烦。因此,我不能对自己说不公开协议是清白的。他拒绝与我们共

享代码,当时我非常愤怒。我不可能转头对其他每一个人都如法炮制同一作法。

另一种选择,直截了当但令人不快,是离开计算机领域。如果那样,我的技能

就不会被滥用,但我的才能仍然会被浪费掉。我个人不会成为分隔、限制计算机用

户的帮凶,但社会上的分隔和限制依旧在发生。

因此,我要寻求一种解决之道,使我作为一个程序员能够做些好事。我扪心自

问,我是否能写出一个或一些程序,能使我所珍视的群体再生呢?

答案很清楚:最急需的首先是一个操作系统。这是开始使用计算机最至关重要

软件——有了操作系统,可以做许多事情;没有操作系统,你连计算机都使用不

了。一个自由的操作系统,会使我们可以再度拥有一个相互合作的黑客群体,而且

进一步邀请其他任何人参与进来。每个人都可以安心使用计算机,而无须变成剥夺

自己朋友权益的同谋。

作为操作系统开发人员,我拥有的技能正适合这项工作。因此,尽管我不认为

成功唾手可得,但是我觉得这是我的天赋。我决定将系统设计得与UNIX兼容以便移

植,同时也便于UNIX用户的移民到这一新的操作系统上来。我按照一项黒客的传统

选择了GNU这个名字,GNU是“Gnu's not UNIX”(GNU不是UNIX)的递归同义

词。

操作系统并不仅仅意味着一个恰好只能运行其他程序的内核。在70年代,任何

排得上号的操作系统都包括有命令解释器、汇编器、编译器、解释器、调试器、文

本编辑器和电子邮件软件包等等。ITS包括这些东西,Multics有,VMS有,UNIX有,

GNU操作系统也应该含有这些东西。很久之后我看到了以下的诗句,据传来自Hillel*:

如果我不为自己打算,谁会为我考虑?

如果我只为自己打算,我又变成了什么东西?

如果现在不动手,还要等到什么时候?

启动GNU工程的决定,正是基于同样的精神。

* 脚注:作为无神论者,我不盲从任何宗教领袖,但有时我不得不赞赏他们中某些

人的箴言。

Freedom中的自由

“free software”这种术语有时会被误解——事实上它和价格毫无关系。它

的涵义是自由。这是自由软件的定义所决定的。对于你,某个特定的用户来说,如

果某个程序称为自由软件,那么:

你拥有运行该程序的自由,而且可以用于任何目的。

你拥有修改该程序以适应你个人需要的自由。(为了在实践中使这一自由成为

可能,你必须能够获得源代码,因为没有源代码而试图修改程序是极端困难的。)

你拥有再发行拷贝的自由,可以是无偿的,也可以收费。

你拥有发行该程序修改后版本的自由,从而使社团可以从你所作的改进中获益。

因为这里“free”的涵义是自由而非价格,自由软件和销售拷贝之间并没有矛

盾。事实上,销售拷贝的自由是至关重要的:把自由软件收集到CD-ROM上出售对整

个社团都很重要,而销售它们又是为开发自由软件筹集资金的重要手段。因此,如

果人们无法将某个程序自由地收集到这些集合中时,这个软件就不是自由软件

由于“free”一词具有歧义,人们长久以来都在寻找另外的词来替代它,但直

到现在还没有找到其合适的替代词。英语的单词与单词之间的细微差别比世界上其

他的语言更多,然而它却缺少一个简单明了、没有歧义的单词表示自由(freedom)

中的“free”。“unfettered”(除去镣铐的)也许是词意与之最接近的词了。其

他诸如“liberated”(被解放的)、“freedom”(自由的)和 “open”(开放

的)也被考虑过,但是这样替代词要么语义不对,要么就是存在其他缺陷。

GNU软件与GNU系统

开发一个操作系统是一个非常庞大的工程。考虑到可行性,我决定只要有可能

就采用和使用现成的自由软件。例如,最初我就决定使用TeX作为主要的文本格式

化工具;几年之后,我决定使用X Window系统,而不是另起炉灶为GNU写一个窗口

系统。

由于这些决定,GNU系统不等价于所有GNU软件的集合。GNU系统中包括非

GNU软件、由其他人或者其他开发项目出于各自目的而编写的程序,但正因为它们

是自由软件,所以我们可以使用。

工程之发轫

1984年1月,我辞去了在MIT的职务,开始专心致志编写GNU 软件。离开MIT是

必要的,这样MIT就无法干涉我将GNU作为自由软件发行。如果我继续在学校的工作,

那么MIT可以声称拥有我的工作成果,可以实施他们自己的软件发行条件,甚至可

以将它们变成专有软件。我无意在付出大量的劳动后,最终只是看到结果对自己的

初衷没有帮助。我的初衷是:创造一个新的软件共享群体。

不过,当时MIT人工智能实验室的领导,温斯顿教授(Prof. Winston),却友

善地邀请我继续使用实验室的设备。

最初的步骤

启动GNU工程之前不久,我听说荷兰自由大学有一种编译器软件包(又称VUCK,

荷兰语中表示“自由”的词以字母“V”开始)。这是一个为处理多种编程语言(

包括C和Pascal)而设计的编译器,并且支持多种目标机。我给它的创作者写了一

封信,询问GNU工程是否可以使用它。

他的回信不无嘲弄,声称大学是自由的,但他的编译器不是。因此我决定为GNU

开发的第一个程序是一个支持多语言、多平台的编译器。

我希望避免单枪匹马地开发整个编译器,我获取了在劳伦斯·利福摩实验室(

Laurence Livermore Lab)开发的多平台编译器,即Pastel的源代码。它支持Pascal,

本身就是专为系统编程而设计,而且是Pascal语言的一个扩展版本。我加上了一个C

的前端(frontend),然后开始将它移植到摩托罗拉68000计算机计算机上去。但我

不得不放弃,因为我后来发现该编译器需要许多兆字节的栈空间,而当时的68000

UNIX系统只支持64K。

于是,我判定该Pascal编译器的设计思想是将整个输入文件处理成为一个语法

树,将整个语法树转化为一连串的“指令”,然后生成整个输出文件,在全过程之

中不会释放任何内存。从那时起,我决心从头开始编写一个完整的编译器。这个新

编译器现在的名字就是GCC,它完全没有使用任何Pastel编译器的代码,但我设法用

上了我原来编写的C前端,不过这却是几年以后的事情了。我首先完成了GNU Emacs。

GNU Emacs

我开发GNU Emacs的工作始于1984年,1985年初GNU Emacs便可以开始使用了。

这使我可以在UNIX机器上进行编辑工作。而在此之前,因为没有兴趣使用vi或ed,

我的文本编辑工作都是在其他系统上完成的。

这时,人们开始希望能使用GNU Emacs,这就引发了如何发行的问题。我将它放

到了我所使用的MIT机器的匿名FTP服务器上(prep.ai.mit.edu这台计算机从此成为

GNUFTP发行的主站点。几年之后机器不复使用时,我们将它的名字转到新的FTP服务

器上)。但在当时,许多有兴趣使用GNU Emacs的人都不在因特网上,也就无法利用

FTP以获得Emacs的拷贝。那么,我应该告诉他们什么呢?

我可以说:“找一个能上网的朋友,他会帮助你获得拷贝的”。或者按照我最

初在PDP-10上发行Eamcs的方式,对他们说:“寄给我一盘磁带和一个邮资已附的回

信信封,我会把Eamcs寄回给你的”。但当时我没有工作,正在寻找通过自由软件

钱的方法。 因此我宣布会为所有希望得到它的人邮寄一份,定价是150美元。这样,

我开始了商业性自由软件的发行业务,这也是当今众多销售完整的、基于Linux的GNU

系统的公司之滥觞。

程序对每个使用者都自由吗?

一个程序作为自由[1] [url=http://www.chinamx.com.cn/Article/os/Linux/200605/20060530131241_29742_2.html][2] [3] [4] 下一页

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有