上古的 MIT Lisp 机器系统软件的最后一个版本恢复成功
| 2023-04-04 09:11:00 评论: 0
这是非常重要的、上古的计算机上运行的,古老软件的新版本。
LM-3 项目宣布了 MIT CADR Lisp 机器 系统软件的第 100 版,这是它的最后一个版本。它既是一个新的版本,也是一个非常 古老的版本。
前两天,IBM 的 Eric Moore 在 LinkedIn 上发布了关于这个版本的 消息,他帮助了这项恢复工作。该项目的一个更详细的 帖子 描述了这个软件是什么,以及它是从哪里恢复的。
为什么这很重要?好吧,这款软件和它所运行的机器,是一场 “重要战斗” 的标志和纪念物。那场战斗是一场战争的一个阶段:一场以 “针锋相对的方式” 制造计算机的战争。“历史是由胜利者书写的”,温斯顿·丘吉尔 不是 第一个这样说的人。
这场战争和大多数战争一样,是两个 “对手阵营” 之间的战争。一方认为,制造计算机的正确方法是用最好的语言编写最好的软件,如果有必要的话,还要设计精工巧做的计算机来运行这些软件。另一方认为制造计算机的正确方法是制造小而快、容易而简单的软件和硬件,完成大多数人当时需要的工作。
同样,像大多数战争一样,这场战争是漫长而险恶的,双方都有一些肮脏的内斗。最终,有一方取得了决定性的胜利,但已经花了太长的时间,胜利者大多是开始战斗的那些人的后代和亲属。如今,他们甚至根本不记得有这么一场战争,而胜利的一方最终吸收了很多失败一方的想法和技术。最终的结果是,软件并不小而快,也不容易而简单。胜利的一方忘记了他们在战斗,也忘记了与之战斗的对手。
当胜利者忘记他们已经胜利了,也忘记了他们在战斗,这意味着失败者可以写一些最好的战争总结。一篇著名的报道是写自 1991 年的文章,名为《Lisp:好消息,坏消息,如何大获全胜》,其中说:
这两种哲学被称为 “ 做正确的事 ” 和 “ 差点则更好 ”。
“做正确的事” 是麻省理工学院/斯坦福的设计风格。另一边呢?
早期的 Unix 和 C 就是使用这种设计流派的例子,我将把这种设计策略的使用称为“新泽西方式”。
这篇文章只有短短几页,但如果你现在没有时间,用一句话可以概况,即 “差点则更好”。
换句话说,一方从麻省理工学院和斯坦福大学开始,他们最终设计了一种叫做 Lisp 机器 的计算机。另一方建立了 Unix 和后来专用的工作站,以快速运行 Unix,这需要可以快速运行编译的 C 代码的特殊处理器,它被称为 RISC 芯片。英特尔和 AMD 将 RISC 的一些技术和方法改编为 486 和奔腾芯片,AMD 则改编为皓龙和 x86-64,结果是 x86 电脑最终将 RISC 工作站赶出了市场。不过,今天,由于高端的 苹果芯片 Mac 和低端的 RISC-V,RISC 正在复兴当中。
但是,x86、RISC 和 CISC,以及 基于 Algol 的整个语言家族,包括从 BASIC 到 C++、到 Pascal、到 Go,基本上都是胜利一方的派别。而另一方现在几乎都被遗忘了,但有两个大的例子。一个是已故伟大的 约翰·麦卡锡 创造的 Lisp,以及 整个基于 Lisp 的操作系统 所运行的 Lisp 机器。另一个是 Smalltalk 和施乐公司的 Alto。
麻省理工学院第一次尝试建造运行 Lisp 的计算机是一台 1974 年的原型机,名为 CONS,它以 Lisp 的一个关键词命名。1979 年,它更成功的后代被称为 CADR。CADR 计算机后来成为两家商业 Lisp 机器公司 LMI 和 Symbolics 的首批产品的基础,后者拥有互联网上的第一个 .com 域名。这些公司的成立,以及它们的软件的分拆,开始了 一个叫 理查德·斯托曼 的年轻黑客的职业生涯。
这条蓝色的导火索启动了 Emacs、GNU 项目,以及 自由软件运动 。该项目建立了 GCC 等工具,这些工具被用来创建 Linux,而 Linux 本身也启动了 开源运动 。
这次恢复的软件是麻省理工学院 CADR Lisp 机器的系统软件的最终版本。该软件是从麻省理工学院 技术广场磁带 (ToTS)收藏中的备份磁带上提取的,但它花了十年的时间来提取数据,对其进行清理,并使其在 35 年后首次运行。这是一个庞大的 工程。
是的,如今可以运行这个软件,至少在软件模拟器上可以运行,比如最初由 Brad Parker 开发的 usim。它的源代码和一些历史都在 GitHub 上。