paint-brush
赤裸裸的道德选择经过@samwilliams
442 讀數
442 讀數

赤裸裸的道德选择

经过 Sam Williams25m2022/11/20
Read on Terminal Reader

太長; 讀書

1983 年 9 月 27 日,登录 Usenet 新闻组 net.unix-wizards 的计算机程序员遇到了一条不寻常的消息。凌晨 12:30 发布,由 rms@mit-oz 签名,消息的主题行简洁但引人注目。 “新的 UNIX 实现,”它写道。然而,该消息的开头段落没有介绍新发布的 Unix 版本,而是发出了号召:从这个感恩节开始,我将编写一个完整的 Unix 兼容软件系统,称为 GNU(Gnu's Not Unix),并将其赠送免费提供给所有可以使用它的人。
featured image - 赤裸裸的道德选择
Sam Williams HackerNoon profile picture

Free as in Freedom,作者 Sam Williams,是 HackerNoon Books Series 的一部分。你可以在这里跳转到本书的任何章节。赤裸裸的道德选择

赤裸裸的道德选择

1983 年 9 月 27 日,登录 Usenet 新闻组 net.unix-wizards 的计算机程序员遇到了一条不寻常的消息。凌晨 12:30 发布,由 rms@mit-oz 签名,消息的主题行简洁但引人注目。 “新的 UNIX 实现,”它写道。然而,该消息的开头段落并没有介绍新发布的 Unix 版本,而是发出了号召:从这个感恩节开始,我将编写一个完整的 Unix 兼容软件系统,称为 GNU(Gnu's Not Unix),并将其赠予他人免费提供给所有可以使用它的人。非常需要时间、金钱、程序和设备的贡献。1 对于有经验的 Unix 开发人员来说,这个信息是理想主义和狂妄自大的混合体。作者不仅承诺从头开始重建已经成熟的 Unix 操作系统,而且还提出要对它进行改进。作者预测,新的 GNU 系统将包含所有常用组件——一个文本编辑器、一个运行 Unix 兼容应用程序的 shell 程序、一个编译器,“以及其他一些东西。”参见 Richard Stallman,“Initial GNU Announcement” (1983 年 9 月)。 http://www.gnu.ai.mit.edu/gnu/initial-announcement.html 它还将包含许多其他 Unix 系统尚未提供的诱人功能:基于 Lisp 编程语言的图形用户界面,防崩溃文件系统,以及根据麻省理工学院内部网络系统构建的网络协议。

“GNU 将能够运行 Unix 程序,但不会等同于 Unix,”作者写道。 “我们将根据我们在其他操作系统上的经验,进行所有方便的改进。”

预料到一些读者会持怀疑态度,作者确保在他的操作系统大纲之后附上一个简短的传记素描,标题为“我是谁?”:我是 Richard Stallman,最初被大量模仿的 EMACS 编辑器的发明者,现在麻省理工学院人工智能实验室。我广泛从事编译器、编辑器、调试器、命令解释器、不兼容的分时系统和 Lisp 机器操作系统方面的工作。我在 ITS 中开创了与终端无关的显示支持。此外,我还为 Lisp 机器实现了一个防崩溃文件系统和两个窗口系统。正如命中注定,Stallman 奇思妙想的 GNU 项目错过了感恩节发布日期。然而,到 1984 年 1 月,Stallman 兑现了他的诺言,完全沉浸在 Unix 软件开发的世界中。对于在 ITS 长大的软件架构师来说,这就像设计郊区购物中心而不是摩尔式宫殿。即便如此,构建类 Unix 操作系统仍有其隐藏的优势。 ITS 非常强大,但它也有致命弱点:麻省理工学院的黑客设计它是为了特别利用 DEC 构建的 PDP 系列。当 AI 实验室管理员在 1980 年代初选择逐步淘汰实验室功能强大的 PDP-10 机器时,这个曾经被黑客比作充满活力的城市的操作系统瞬间变成了一座鬼城。另一方面,Unix 是为移动性和长期生存而设计的。该程序最初由 AT&T 的初级科学家开发,后来在公司管理层的监视下溜走了,在资金短缺的学术计算机系统世界中找到了一个幸福的家。由于资源少于麻省理工学院的兄弟们,Unix 开发人员定制了软件以运行在杂乱无章的硬件系统之上:从 16 位 PDP-11(大多数 AI 实验室黑客认为只适合执行小任务的机器)到 32位大型机,例如 VAX 11/780。到 1983 年,一些公司,最著名的是 Sun Microsystems,甚至开发了新一代微型计算机,称为“工作站”,以利用日益普及的操作系统。

为了促进这个过程,负责设计主要 Unix 系列的开发人员确保在软件和机器之间保留一个额外的抽象层。不同于定制操作系统以利用特定机器的资源——就像 AI 实验室的黑客对 ITS 和 PDP-10 所做的那样——Unix 开发人员更喜欢一种更通用的现成方法。他们更多地关注将操作系统的许多子组件结合在一起的互锁标准和规范,而不是实际组件本身,他们创建了一个可以快速修改以适应任何机器口味的系统。如果用户对某个部分有异议,标准可以提取一个单独的子组件并修复它或用更好的东西替换它。简而言之,Unix 方法在风格或美学方面的不足,在灵活性和经济性方面弥补了它的不足,因此它被迅速采用。参见 Marshall Kirk McKusick,“Berkeley Unix 的二十年”,Open Sources (O 'Reilly & Associates, Inc., 1999): 38。

Stallman 开始开发 GNU 系统的决定是由 AI Lab 黑客长期培育的 ITS 系统的终结引发的。 ITS 的倒闭对斯托曼来说是一个沉重的打击。在施乐激光打印机事件之后,它提供了进一步的证据,表明人工智能实验室的黑客文化正在失去对外界商业行为的免疫力。

就像组成它的软件代码一样,ITS 消亡的根源可以追溯到很久以前。国防开支长期以来一直是计算机科学研究的主要来源,但在越战后的岁月里已经枯竭。在急需新资金的情况下,实验室和大学求助于私营部门。就人工智能实验室而言,赢得私人投资者是轻而易举的事。作为战后时代一些最雄心勃勃的计算机科学项目的所在地,该实验室成为了一个快速的技术孵化器。事实上,到 1980 年,实验室的大部分员工,包括许多黑客,都将时间分配在研究所和商业项目之间。

起初看起来像是双赢的交易——黑客们开始从事最好的项目,让实验室首先看到许多最新的计算机技术——很快就表明这是一笔浮士德式的交易。黑客投入尖端商业项目的时间越多,他们投入到实验室巴洛克式软件基础设施的一般维护的时间就越少。很快,公司开始直接雇佣黑客,企图独占他们的时间和注意力。由于关注商店的黑客越来越少,程序和机器的修复时间也越来越长。更糟糕的是,Stallman 说,实验室开始经历“人口变化”。曾经在 AI 实验室内形成少数声音的黑客正在失去成员,而“不真正喜欢 [PDP-10] 的教授和学生和以前一样多。”参见 Richard Stallman (1986)。

转折点出现在 1982 年。那一年,实验室管理部门决定升级其主计算机 PDP-10。制造 PDP-10 的公司 Digital 已经停产该生产线。尽管该公司仍提供高性能大型机,称为 KL-10,但如果黑客想继续运行相同的操作系统,则新机器需要对 ITS 进行彻底重写或“移植”。由于担心实验室失去了足够的内部编程人才,AI 实验室的教职员工迫切希望使用由 Digital 开发的商业操作系统 Twenex。由于寡不敌众,黑客别无选择,只能服从。

“如果没有黑客来维护系统,[教职员工] 会说,‘我们将遭遇灾难;我们必须拥有商业软件,’”几年后斯托曼回忆道。 “他们说,‘我们可以期待公司维护它。’事实证明他们完全错了,但他们就是这么做的。”

起初,黑客将 Twenex 系统视为另一个乞求被颠覆的专制象征。该系统的名称本身就是一种抗议。 DEC 将其正式命名为 TOPS-20,它是 TOPS-10 的继任者,TOPS-10 是 DEC 为 PDP-10 销售的商业操作系统。 Bolt Beranek Newman 开发了一个改进版本,称为 Tenex,TOPS-20 借鉴了它。多个来源:参见 Richard Stallman 采访、Gerald Sussman 电子邮件和 Jargon File 3.0.0。 http://www.clueless.com/jargon3.0.0/TWENEX.html Stallman 是创造 Twenex 术语的黑客,他说他想出这个名字是为了避免使用 TOPS-20 名称。 “这个系统远非顶级,所以我不可能这样称呼它,”斯托曼回忆道。 “所以我决定在 Tenex 名称中插入一个‘w’,并将其命名为 Twenex。”

运行 Twenex/TOPS-20 系统的机器有自己的嘲讽绰号:Oz。根据一位黑客传奇,该机器之所以得名,是因为它需要一台更小的 PDP-11 机器来为其终端供电。一位黑客在第一次看到 KL-10-PDP-11 设置时,将其比作绿野仙踪中向导夸张的屏幕介绍。 “我是伟大而强大的 Oz,”黑客吟诵道。 “不要注意那个控制台后面的 PDP-11。”参见 http://www.as.cmu.edu/~geek/humor/See_Figure_1.txt

如果黑客在第一次遇到 KL-10 时笑了,当他们遇到 Twenex 时,他们的笑声很快就消失了。 Twenex 不仅拥有内置的安全性,而且系统的软件工程师在设计工具和应用程序时也考虑到了安全系统。计算机科学实验室的安全系统曾经是关于密码的猫捉老鼠游戏,现在变成了一场不折不扣的系统管理大战。系统管理员争辩说,如果没有安全措施,Oz 系统更容易发生意外崩溃。黑客争辩说,通过彻底检查源代码可以更好地防止崩溃。不幸的是,有时间和意愿进行这种大修的黑客数量已经减少到系统管理员争论盛行的地步。

索取密码并故意使系统崩溃以从由此产生的残骸中收集证据,Stallman 成功地挫败了系统管理员断言控制的企图。在挫败了一次“政变”之后,斯托曼向所有 AI 员工发出了警报。

“又一次企图夺权,”斯托曼写道。 “至此,贵族势力已经大败。”为了保护他的身份,Stallman 在消息“Radio Free OZ”上签名。

伪装充其量只是一种薄薄的伪装。到 1982 年,Stallman 对密码和保密性的厌恶已广为人知,以至于 AI 实验室以外的用户都将他的帐户用作 ARPAnet 的垫脚石,ARPAnet 是一个由研究资助的计算机网络,将成为当今互联网的基础。 1980 年代初期的一位这样的“游客”是加州程序员唐霍普金斯,他通过黑客小道消息得知,外人要访问麻省理工学院引以为豪的 ITS 系统,只需以首字母 RMS 登录,然后输入相同的三个- 系统请求密码时的字母组合。

“我永远感激麻省理工学院让我和许多其他人免费使用他们的电脑,”霍普金斯说。 “这对很多人来说意义重大。”

这种所谓的“游客”政策,在 ITS 年代曾被 MIT 管理层公开容忍,参见“MIT AI 实验室游客政策”。当 Oz 成为实验室与 ARPAnet 的主要链接时,http://catalog.com/hopkins/text/tourist-policy.html 就半途而废了。起初,Stallman 继续他的政策,重复他的登录 ID 作为密码,以便外部用户可以跟随他的脚步。然而,随着时间的推移,Oz 的脆弱性促使管理员禁止外来者通过纯粹的意外或恶意意图破坏系统。当这些管理员最终要求 Stallman 停止公开他的密码时,Stallman 以个人道德为由拒绝这样做,并完全停止使用 Oz 系统。 3

“[当]密码第一次出现在麻省理工学院人工智能实验室时,我[决定]遵循我的信念,即不应该有密码,”斯托曼后来说。 “因为我不认为在计算机上拥有安全性真的是可取的,所以我不应该愿意帮助维护安全制度。”

Stallman 拒绝在伟大而强大的 Oz 面前低头,象征着 1980 年代初期黑客与 AI Lab 管理层之间日益紧张的关系。与黑客社区内部的激烈冲突相比,这种紧张局势显得微不足道。当 KL-10 到来时,黑客界已经分成了两个阵营。第一个以名为 Symbolics, Inc. 的软件公司为中心。第二个以 Symbolics 的主要竞争对手 Lisp Machines, Inc. (LMI) 为中心。两家公司都在竞相推销 Lisp Machine,这是一种为充分利用 Lisp 编程语言而构建的设备。

Lisp 由人工智能研究先驱、麻省理工学院人工智能研究员 John McCarthy 在 50 年代后期创建,是一种优雅的语言,非常适合负责重型排序和处理的程序。该语言的名称是 LISt Processing 的缩写。在 McCarthy 离开斯坦福人工智能实验室后,麻省理工学院的黑客们将这种语言改进为一种名为 MACLISP 的当地方言。 “MAC”代表 MAC 项目,DARPA 资助的研究项目催生了人工智能实验室和计算机科学实验室。在 AI Lab 首席黑客 Richard Greenblatt 的带领下,AI Lab 的程序员在 1970 年代建立了一个完整的基于 Lisp 的操作系统,被称为 Lisp Machine 操作系统。到 1980 年,Lisp Machine 项目已经产生了两个商业衍生产品。 Symbolics 由前 AI 实验室管理员 Russell Noftsker 领导,而 Lisp Machines, Inc. 由 Greenblatt 领导。

Lisp Machine 软件是黑客构建的,这意味着它归麻省理工学院所有,但任何人都可以按照黑客的习惯进行复制。这样的系统限制了任何希望从麻省理工学院获得软件许可并将其作为独一无二的软件进行营销的公司的营销优势。为了确保优势,并增强客户可能认为有吸引力的操作系统方面,这些公司招募了各种 AI Lab 黑客,并让他们在 AI Lab 的支持之外研究 Lisp Machine 操作系统的各种组件。

这个策略中最激进的是 Symbolics。到 1980 年底,该公司聘请了 14 名 AI 实验室员工作为兼职顾问来开发其 Lisp Machine 版本。除了 Stallman,其他人都签约帮助 LMI。参见 HP Newquist,The Brain Makers: Genius, Ego, and Greed in the Quest for Machines that Think(Sams Publishing,1994):172。

起初,Stallman 接受了两家公司将 Lisp 机器商业化的尝试,尽管这对他来说意味着更多的工作。两者都从麻省理工学院获得了 Lisp Machine OS 源代码的许可,Stallman 的工作是更新实验室自己的 Lisp Machine 以跟上最新的创新步伐。尽管 Symbolics 与麻省理工学院的许可赋予 Stallman 审查而非复制 Symbolics 源代码的权利,但 Stallman 表示,Symbolics 管理层与 AI 实验室之间的“君子协议”使得以传统黑客方式借用有吸引力的片段成为可能。

1982 年 3 月 16 日是 Stallman 记得很清楚的一天,因为那天是他的生日,Symbolics 的高管们决定终止这项君子协定。此举主要是战略性的。 LMI 是 Lisp Machine 市场上的主要竞争对手,本质上是在使用 AI Lab Lisp Machine 的副本。 Symbolics 的高管们没有资助市场竞争对手的发展,而是选择执行许可证书。如果 AI 实验室希望其操作系统与 Symbolics 操作系统保持同步,则该实验室必须切换到 Symbolics 机器并切断与 LMI 的连接。

作为负责维护实验室 Lisp Machine 的人,Stallman 被激怒了。他将此公告视为“最后通牒”,作为报复,他断开了 Symbolics 与实验室的微波通信链路。然后他发誓永远不会在 Symbolics 机器上工作,并保证他立即效忠于 LMI。 “在我看来,人工智能实验室是一个中立国家,就像第一次世界大战中的比利时一样,”斯托曼说。 “如果德国入侵比利时,比利时将向德国宣战,并站在英国和法国一边。”

1982-1983 年所谓的“象征战争”的情况在很大程度上取决于讲述的消息来源。当 Symbolics 的高管们注意到他们的最新功能仍然出现在 AI Lab Lisp Machine 以及 LMI Lisp 机器中时,他们在 Stallman 的计算机终端上安装了一个“间谍”程序。 Stallman 说他正在从头开始重写这些功能,利用许可证的审查条款,但也努力使源代码尽可能不同。 Symbolics 的高管们提出不同意见,并将他们的案子提交给麻省理工学院管理部门。根据 1994 年的书,大脑制造者:天才、自我和贪婪,以及对思考机器的探索,由 Harvey Newquist 撰写,政府回应警告 Stallman “远离”Lisp Machine 项目。同上。 : 196. 根据斯托曼的说法,麻省理工学院的管理人员支持斯托曼。 “我从未受到威胁,”他说。 “不过,我确实改变了我的做法。为了超级安全,我不再阅读他们的源代码。我只使用文档并从中编写代码。”

无论结果如何,争吵都坚定了斯托曼的决心。由于没有源代码可供审查,斯托曼根据自己的喜好填补了软件空白,并招募了人工智能实验室的成员来提供源源不断的错误报告。他还确保 LMI 程序员可以直接访问更改。 “如果这是我做的最后一件事,我会惩罚 Symbolics,”斯托曼说。

这样的陈述很有启发性。它们不仅揭示了斯托曼的非和平主义天性,还反映了冲突引发的强烈情绪。根据另一个与 Newquist 相关的故事,Stallman 一度变得非常愤怒,以至于他发了一封电子邮件威胁要“用炸药包裹自己并走进 Symbolics 的办公室。”同上。 Newquist 说这个轶事得到了 Symbolics 几位高管的证实,他写道:“这条消息引起了 Symbolics 员工的短暂兴奋和猜测,但最终,没有人认真对待 Stallman 的爆发。”尽管 Stallman 否认对这封电子邮件有任何记忆,并将其描述为“恶毒的谣言”,但他承认这种想法确实进入了他的脑海。 “我确实幻想过在这个过程中自杀并摧毁他们的建筑,”斯托曼说。 “我以为我的生命结束了。”

绝望的程度在很大程度上归因于 Stallman 认为他的“家”遭到“破坏”——即 AI 实验室紧密结合的黑客亚文化的消亡。在后来接受 Levy 的电子邮件采访时,Stallman 将自己比作历史人物 Ishi,Yahi 的最后幸存成员,这是一个太平洋西北部落,在 1860 年代和 1870 年代的印第安战争中被消灭。这个类比用史诗般的、几乎是神话般的术语来描述斯托曼的幸存。然而,实际上,它掩盖了在 Symbolics-LMI 分裂之前 Stallman 和他的 AI 实验室黑客同事之间的紧张关系。斯托曼的许多同事并没有将符号学视为一种毁灭性的力量,而是将其视为对相关性的迟来的尝试。在将 Lisp Machine 商业化的过程中,该公司将工程师驱动的软件设计的黑客原则从 AI 实验室的象牙塔范围内推向了经理驱动的设计原则占据主导地位的企业市场。许多黑客并没有将斯托曼视为顽固分子,而是将他视为令人不安的时代错误。

斯托曼并不反对这种对历史事件的替代观点。事实上,他说这是符号学“最后通牒”引发敌意的另一个原因。甚至在 Symbolics 雇佣掉大部分 AI Lab 的黑客员工之前,Stallman 说许多后来加入 Symbolics 的黑客都在避开他。 “我不再受邀去唐人街,”斯托曼回忆道。 “格林布拉特开始的习俗是,如果你出去吃晚饭,你会四处走走或发信息问实验室里的任何人是否也想去。大约在 1980 年至 1981 年的某个时候,我不再被问到。他们不仅不想邀请我,但一个人后来承认,他被迫对我撒谎,让他们在没有我的情况下外出就餐。”

尽管 Stallman 对策划这种微不足道的排斥行为的黑客感到愤怒,但 Symbolics 争议引发了一种新的愤怒,一种即将失去家园的人的愤怒。当 Symbolics 停止发送其源代码更改时,Stallman 的回应是躲在麻省理工学院的办公室里,从头开始重写每个新的软件功能和工具。尽管这可能令人沮丧,但它保证了未来的 Lisp Machine 用户可以不受限制地访问与 Symbolics 用户相同的功能。

这也保证了斯托曼在黑客界的传奇地位。 Stallman 已经以 Emacs 的工作而闻名,他能够与整个 Symbolics 程序员团队(这个团队本身包括不少传奇黑客)的输出相媲美,这仍然是信息时代或人类的主要成就之一任何年龄都可以。作家史蒂文利维称其为“黑客大师”,斯托曼本人是“计算机代码的虚拟约翰亨利”,他指出,他的许多使用 Symbolics 的竞争对手别无选择,只能向他们理想主义的前同志表示勉强的尊重。 Levy 引用了 Bill Gosper 的话,他是一名黑客,最终在公司的帕洛阿尔托办公室为 Symbolics 工作,对 Stallman 在此期间的输出表示惊讶:我可以看到 Stallman 写的东西,我可能会认为它很糟糕(可能不是,但有人可以说服我这很糟糕),我仍然会说,“但是等一下 - Stallman 在那里没有人可以整夜争论。他独自工作!令人难以置信的是任何人都可以独自完成这件事!”见史蒂文利维, Hackers(Penguin USA [平装本],1984 年):426. 对于 Stallman 来说,几个月来追赶 Symbolics 唤起了自豪和深深的悲伤。作为父亲曾在二战服役的彻头彻尾的自由主义者,斯托曼并不是和平主义者。在许多方面,符号学战争提供了 Stallman 自十年前加入 AI 实验室工作人员以来一直在努力实现的成年仪式。然而,与此同时,它恰逢人工智能实验室黑客文化的毁灭性破坏,这种文化从他十几岁起就培养了斯托曼。一天,在写代码休息时,Stallman 在经过实验室的设备室时经历了一个痛苦的时刻。在那里,Stallman 遇到了 PDP-10 机器笨重、未使用的框架。 Stallman 被休眠灯吓了一跳,这些灯曾经主动闪烁出指示内部程序状态的无声代码,Stallman 说这种情绪冲击与看到心爱的家人保存完好的尸体没有什么不同。

“我在设备室里开始哭泣,”他说。 “看到那里的机器,死了,没有人修理它,这一切都让我明白我的社区是如何被彻底摧毁的。”

斯托曼几乎没有机会哀悼。 Lisp Machine,尽管它引起了所有的轰动,并且投入了所有的劳动,但它只是技术市场上大型斗争的一个小插曲。计算机小型化的不懈步伐带来了更新、更强大的微处理器,这些微处理器很快就会整合机器的硬件和软件功能,就像现代大都市吞噬了古老的沙漠村庄一样。

乘着微处理器浪潮的是数十万个商业软件程序,每个程序都受到用户许可和保密协议拼凑而成的保护,使黑客无法审查或共享源代码。许可证很粗糙,也不合适,但到 1983 年,它们已经足够强大,足以满足法院的要求并吓跑潜在的闯入者。软件曾经是大多数硬件公司为了让他们昂贵的计算机系统更有味道而放弃的一种装饰形式,现在正迅速成为主菜。由于对新游戏和新功能的渴望与日俱增,用户放弃了每顿饭后查看食谱的传统要求。

这种情况在个人计算机系统领域最为明显。 Apple Computer 和 Commodore 等公司通过销售内置操作系统的机器造就了新的百万富翁。由于不了解黑客文化及其对纯二进制软件的厌恶,当这些公司未能附上随附的源代码文件时,许多用户认为没有必要抗议。一些黑客伦理的无政府主义者帮助将这种伦理推向了这个新的市场,但在大多数情况下,市场奖励了程序员足够快地编写新程序和足够聪明的人将它们作为受法律保护的作品获得版权。

这些程序员中最臭名昭著的之一是比尔·盖茨,他是比斯托曼小两岁的哈佛辍学生。尽管 Stallman 当时并不知道,在他向 net.unix-wizards 新闻组发送消息之前七年,盖茨是一位崭露头角的企业家,也是总部位于阿尔伯克基的软件公司 Micro-Soft 的普通合伙人,后来拼写为微软向软件开发者社区发出了他自己的公开信。为了回应 PC 用户复制 Micro-Soft 的软件程序,盖茨的“致业余爱好者的公开信”谴责了公共软件开发的概念。

“谁能负担得起白做专业工作?”盖茨问。 “哪个业余爱好者可以花三个人年的时间进行编程,找出所有错误,记录他的产品并免费分发它?”请参阅比尔盖茨,“致业余爱好者的公开信”(1976 年 2 月 3 日)。要查看这封信的在线副本,请访问

http://www.blinkenlights.com/classiccmp/gateswhine.html。

尽管人工智能实验室的黑客很少看到这封信,但盖茨 1976 年的信仍然代表了商业软件公司和商业软件开发商对软件态度的转变。为什么在市场不这么认为的情况下将软件视为零成本商品?随着 1970 年代过渡到 80 年代,销售软件不仅仅是一种收回成本的方式;它变成了一项政治声明。当里根政府急于废除大萧条后半个世纪以来建立起来的许多联邦法规和支出计划时,不少软件程序员认为黑客道德是反竞争的,并且推而广之,非美国人。充其量,这是对 1960 年代末和 70 年代初反企业态度的倒退。就像一位华尔街银行家在法式翻边衬衫和双排扣西装之间发现一件旧扎染衬衫一样,许多计算机程序员将黑客道德视为理想主义时代的尴尬提醒。

对于一个将整个 1960 年代视为 50 年代尴尬倒退的人来说,Stallman 并不介意与同龄人生活格格不入。然而,作为一个习惯于使用最好的机器和最好的软件的程序员,Stallman 面临着他只能描述为“严峻的道德选择”:要么克服他对“专有”软件的道德反对——Stallman 和他的同事黑客过去常常描述任何带有限制复制和修改的私人版权或最终用户许可的程序——或者将他的一生奉献给构建一个替代的、非专有的软件程序系统。考虑到他最近几个月与 Symbolics 的磨难,Stallman 对后一种选择感到更自在。 “我想我本可以完全停止在计算机上工作,”斯托曼说。 “我没有特殊技能,但我确信我可以成为一名服务员。可能不是在高档餐厅,但我可以在某个地方当服务员。”

作为一名服务员——即完全放弃编程——意味着完全放弃一项活动,即计算机编程,这给他带来了如此多的乐趣。回顾搬到剑桥后的生活,Stallman 发现很容易识别软件编程提供唯一乐趣的漫长时期。斯托曼没有退学,而是决定坚持下去。

作为无神论者,斯托曼拒绝诸如命运、佛法或生命中的神圣召唤等概念。尽管如此,他确实觉得,避开专有软件并构建操作系统来帮助其他人做同样的事情的决定是很自然的。毕竟,正是 Stallman 个人的固执、远见和编码技巧的结合使他考虑了一条大多数人都不知道的岔路口。在 1999 年出版的《开源》一书的一章中描述这个决定时,斯托曼引用了犹太圣人希勒尔的话中所蕴含的精神:如果我不为自己,谁会为我?如果我只为自己,什么我是吗?如果不是现在,什么时候?参见 Richard Stallman,Open Sources(O'Reilly & Associates, Inc., 1999):56。追随任何宗教领袖,但有时我发现我很钦佩其中一位所说的话。”在对听众讲话时,斯托曼避开了宗教路线,并以务实的方式表达了这一决定。 “我问自己:作为操作系统开发人员,我能做些什么来改善这种情况?直到我仔细研究了这个问题一段时间后,我才意识到操作系统开发人员正是解决问题所需要的”

斯托曼说,一旦他做出了这个决定,其他一切都“水到渠成”。他将放弃使用迫使他妥协他的道德信仰的软件程序,同时将他的一生奉献给创造软件,让其他人更容易走上同样的道路。 1984 年 1 月,Stallman 打趣道,他承诺要建立一个自由软件操作系统,“当然,要不就老死不休”,他从麻省理工学院的工作人员辞职,转而建立 GNU。

辞职使斯托曼的工作远离麻省理工学院的法律支持。尽管如此,Stallman 在 AI 实验室内仍有足够多的朋友和盟友,可以免费使用他在麻省理工学院的办公室。他还有能力获得外部咨询工作,以支持 GNU 项目的早期阶段。然而,在从麻省理工学院辞职时,斯托曼否认了任何关于利益冲突或研究所软件所有权的争论。那个在成年早期对社会孤立的恐惧驱使他越来越深入 AI 实验室的怀抱的人现在正在他自己和那个环境之间建立一个法律防火墙。

在最初的几个月里,Stallman 也与 Unix 社区隔离开来。尽管他向 net.unix-wizards 组发表的声明引起了同情,但很少有志愿者在早期阶段签约加入这场运动。

“社区的反应非常一致,”当时 Unix 用户组的负责人 Rich Morin 回忆道。 “人们说,‘哦,这是个好主意。给我们看看你的代码。告诉我们它是可以做到的。’”

以真正的黑客方式,Stallman 开始寻找可以转换为 GNU 程序和工具的现有程序和工具。第一个是名为 VUCK 的编译器,它将以流行的 C 编程语言编写的程序转换为机器可读的代码。从荷兰语翻译而来,该程序的首字母缩写词代表免费大学编译器工具包。乐观的斯托曼问程序的作者程序是否免费。当作者告诉他“自由大学”一词指的是阿姆斯特丹的自由大学时,斯托曼很懊恼。

“他嘲讽地回应说,大学
是免费的,但编译器不是,”Stallman 回忆道。
“因此我决定我的第一个 GNU 程序
项目将是一个多语言、多平台的编译器。”

最终 Stallman 找到了劳伦斯利弗莫尔国家实验室的程序员编写的 Pastel 语言编译器。根据 Stallman 当时的知识,编译器可以自由复制和修改。不幸的是,这个程序有一个很大的设计缺陷:它把每个程序都保存在核心内存中,占用了其他软件活动的宝贵空间。在大型机系统上,这个设计缺陷是可以原谅的。在 Unix 系统上,这是一个严重的障碍,因为运行 Unix 的机器太小,无法处理生成的大文件。 Stallman 首先取得了实质性进展,为编译器构建了一个与 C 语言兼容的前端。然而到了夏天,他得出的结论是他必须从头开始构建一个全新的编译器。

1984 年 9 月,Stallman 搁置了近期的编译器开发,并开始寻找地势较低的成果。他开始开发 Emacs 的 GNU 版本,这个程序他本人已经监督了十年。这个决定是战略性的。在 Unix 社区中,两个本地编辑器程序是 vi,由 Sun Microsystems 联合创始人 Bill Joy 编写,而 ed 由贝尔实验室科学家(和 Unix 联合创始人)Ken Thompson 编写。两者都很有用且流行,但都没有提供 Emacs 的无限扩展特性。在为 Unix 用户重写 Emacs 时,Stallman 有更好的机会展示他的技能。也有理由认为 Emacs 用户可能更适应 Stallman 心态。

回顾过去,斯托曼说他没有从战略角度看待这个决定。 “我想要一个 Emacs,我有一个很好的机会来开发一个。”

再一次,重新发明轮子的想法激怒了 Stallman 高效的黑客敏感度。在编写 Emacs 的 Unix 版本时,Stallman 很快就追随了卡内基梅隆大学研究生 James Gosling 的脚步,他是基于 C 的版本的作者,被称为 Gosling Emacs 或 GOSMACS。 Gosling 的 Emacs 版本包括一个解释器,它利用了 Lisp 语言的一个简化分支,称为 MOCKLISP。决心在类似的 Lisp 基础上构建 GNU Emacs,Stallman 大量借鉴了 Gosling 的创新。尽管 Gosling 将 GOSMACS 置于版权保护之下,并将版权出售给了一家私营软件公司 UniPress,但 Stallman 引用了一位参与过早期 MOCKLISP 解释器的开发人员的保证。根据开发人员 Gosling 的说法,他是一名博士。卡内基梅隆大学的学生,曾向早期合作者保证,他们的工作将保持开放。然而,当 UniPress 听说 Stallman 的项目时,该公司威胁要强制执行版权。斯托曼再一次面临着从头开始建设的前景。

在对 Gosling 的解释器进行逆向工程的过程中,Stallman 将创建一个功能齐全的 Lisp 解释器,从而使对 Gosling 原始解释器的需求变得毫无意义。尽管如此,开发商出售软件权利的想法——实际上,开发商首先拥有软件权利可以出售的想法——激怒了斯托曼。在 1986 年瑞典皇家技术学院的一次演讲中,Stallman 引用了 UniPress 事件作为与专有软件相关的危险的另一个例子。

“有时我想也许我这辈子能做的最好的事情之一就是找到一大堆曾经是商业秘密的专有软件,然后开始在街角分发副本,这样它就不会成为商业秘密了更多,”斯托曼说。 “对于我来说,向人们提供新的免费软件,也许比自己实际编写它更有效;但每个人都太懦弱了,甚至不敢接受它。”

尽管它产生了压力,但从长远来看,关于 Gosling 创新的争论将有助于 Stallman 和自由软件运动。这将迫使 Stallman 解决 Emacs Commune 和非正式信任系统的弱点,这些弱点导致有问题的分支出现。它还将迫使斯托曼强化自由软件运动的政治目标。在 1985 年 GNU Emacs 发布之后,Stallman 发布了“GNU 宣言”,这是对 1983 年 9 月发布的原始公告的扩展。专有软件程序的激增。一个论点,“难道程序员不应该因为他们的创造力而得到奖励吗?”得到了回应,表达了 Stallman 对最近的 Gosling Emacs 事件的愤怒:

“如果有什么值得奖励的话,那就是社会贡献,”斯托曼写道。 “创造力可以是一种社会贡献,但仅限于[原文如此]社会可以自由使用结果。如果程序员应该因创造创新程序而受到奖励,同样地,如果他们限制使用,他们应该受到惩罚这些程序的一部分。”参见 Richard Stallman,“The GNU Manifesto”(1985 年)。 http://www.gnu.org/manifesto.html

随着 GNU Emacs 的发布,GNU 项目终于有了可以展示的代码。它也有任何基于软件的企业的负担。随着越来越多的 Unix 开发人员开始使用该软件,金钱、礼物和对磁带的要求开始涌入。为了解决 GNU 项目的业务方面的问题,Stallman 召集了他的一些同事并成立了自由软件基金会 (FSF) ),一个致力于加速 GNU 项目实现其目标的非营利组织。在 Stallman 担任总裁和多个黑客盟友担任董事会成员的情况下,FSF 帮助为 GNU 项目提供了企业形象。

Robert Chassell,当时在 Lisp Machines, Inc. 工作的一名程序员,在与 Stallman 共进晚餐后成为自由软件基金会的五名特许委员会成员之一。 Chassell 还担任该组织的财务主管,这个角色开始时规模很小,但发展很快。

“我认为在 85 年,我们的总支出和收入大约为 23,000 美元,或多或少,”Chassell 回忆道。 “理查德有他的办公室,我们借了空间。我把所有的东西,尤其是磁带,都放在我的桌子下面。直到后来 LMI 借给我们一些空间,我们可以存放磁带和类似的东西。”

除了提供面孔之外,自由软件基金会还为其他不再抱有幻想的程序员提供了一个重心。即使在 Stallman 最初发布 GNU 时,Unix 市场也显得如此竞争激烈。为了加强对客户的控制,公司开始关闭对 Unix 源代码的访问,这一趋势只会加快对正在进行的 GNU 软件项目的查询数量。曾经将 Stallman 视为吵闹的怪人的 Unix 奇才现在开始将他视为软件 Cassandra。

“很多人直到亲身经历后才意识到,花几年时间开发一个软件程序只是为了把它拿走是多么令人沮丧,”Chassell 说,总结了他们的感受和早期写给 FSF 的记者的意见。 “在这种情况发生几次之后,你开始对自己说,‘嘿,等一下。’”

对于 Chassell 来说,参与自由软件基金会的决定归结为他个人的失落感。在加入 LMI 之前,Chassell 一直在受雇工作,为剑桥地区的一家软件公司 Cadmus, Inc. 撰写了一本关于 Unix 的介绍性书籍。当 Cadmus 倒闭时,这本书的版权也随之消失,Chassell 说他试图买回这些版权,但没有成功。

“据我所知,那本书仍然放在某个地方的书架上,无法使用,无法复制,只是从系统中取出,”Chassell 说。 “如果我自己可以这么说的话,那是一个相当不错的介绍。可能需要三四个月的时间才能将 [这本书] 转换成今天对 GNU/Linux 的完美可用的介绍。整个经历,除了我在我的记忆,丢失了。”

查塞尔被迫眼睁睁地看着自己的工作陷入泥潭,而他的前雇主也在破产中苦苦挣扎,查塞尔说,他感到一丝愤怒,正是这种愤怒驱使斯托曼中风发作。 “对我来说,主要的清晰度是这样一种感觉,即如果你想过上体面的生活,你不希望它的某些部分被关闭,”Chassell 说。 “拥有自由进入并修复和修改它的整个想法,无论它是什么,它确实会有所作为。它让人高兴地认为,在你活了几年之后,你所做的一切是值得的。因为否则它就会被拿走、扔掉或抛弃,或者至少,你不再与它有任何关系。这就像失去了你的一点生命。”

关于 HackerNoon Book Series:我们为您带来最重要的技术、科学和富有洞察力的公共领域书籍。

这本书是公共领域的一部分。山姆·威廉姆斯 (2004)。自由即自由:理查德·斯托曼 (Richard Stallman) 的自由软件运动。伊利诺伊州厄巴纳:古腾堡计划。 2022 年 10 月检索,来自https://www.gutenberg.org/cache/epub/5768/pg5768.html

这本电子书供任何人在任何地方免费使用,几乎没有任何限制。您可以根据本电子书或www.gutenberg.org 网站https://www.gutenberg.org/policy/license包含的 Project Gutenberg 许可条款复制、赠送或重新使用它HTML。