Unix 2.0 测试版重获新生

经过不懈努力,最早的可机读 Unix 版本 2 代码重新运行。这份代码运行在 PDP-11 模拟器上,包含了比 1972 年 V1 更新但不含 V2 API 调用的 Unix 版本,可视为 Unix V2 的测试版。这一发现为研究 Unix 早期历史提供了珍贵资料,填补了半个多世纪以来的空白。

经过一番艰苦努力,最古老的机器可读版本的 Unix 2.0 系统重新运行起来了。

这份恢复的代码可以在 PDP-11 模拟器上运行,包含了一个介于 1972 年的 V1 版本之后但尚未包含 V2 API 调用的 Unix 版本,可以称之为 Unix V2 测试版。

作为如此著名的代码,Unix 项目的早期历史却出人意料地晦涩难明,大多数版本的实际软件在半个世纪前就已经遗失。现在,通过一些令人惊叹的抢救工作,来自 Dennis Ritchie 个人备份磁带中、超过半个世纪之久的最古老的机器可读 Unix 副本已经重获新生。

代码考古学家 Yufeng Gao 报告说:

"我已经成功让系统重新运行起来。

[...]

s1 内核是迄今为止最早的机器可读 Unix 内核,处于 V1 和 V2 之间。

[...]

由于它在系统调用方面与 V1 一致,具有 V2 的核心大小并且可以运行 V2 二进制文件,我认为它是一个 'V2 测试版'。"

这里讨论的是介于 Unix 第一版和第二版之间的某个版本。这些是最早在 DEC PDP-11 上运行的版本。PDP-11 是 Unix 运行的第二台机器 —— 一台 16 位 DEC 小型计算机,类似于 Dave Plummer 去年重建的那台。

Unix 最初是在 1969 年为一台非常不同的小型计算机 DEC PDP-7 编写的,这是 DEC 18 位系列中一台更老、更慢、限制更多的机器。当时的 Unix 甚至还没有版本号,所以被称为零版本。PDP-7 Unix 曾被认为永远丢失了。2015 年,一些打印稿被发现。你可以在当时的 The Reg 新闻报道中看到其中的一页。2019 年,又有更多内容被重新发现。这些发黄的旧纸质文档经过扫描,通过光学字符识别处理,志愿者们从结果中重建了汇编语言代码并进行了构建。如今,你也可以在 GitHub 上浏览 Unix 零版本的源代码。

PDP-7 Unix 的运行

在 2019 年,Living Computer Museum 帮助让一台 PDP-7 重新工作并启动了重建的 Unix 零版本。可惜的是,创始人 Paul Allen 那时已经去世。上面的链接指向 Internet Archive 上的副本,因为 Allen 的遗嘱执行人(他的姐姐 Jody)关闭了博物馆并出售了收藏品。

杰出的程序员考古学家 Warren Toomey 创建了 Unix Heritage Society,用于记录(并在可能的情况下重建)Unix 的历史。比如,通过 TUHS,你可以了解 PDP-7 Unix 创建的历史。

这些非常早期的 Unix 版本早于 C 编程语言的开发。它们是用汇编语言手工编码的。已故的伟大的 Dennis Ritchie(Unix 和 C 语言的共同创造者)将在他最古老的备份磁带上发现的这些早期版本称为原始 C。2001 年,The Reg 报道了第一个 C 编译器的恢复,12 年后又报道它可以在 GitHub 上找到。TUHS 是从 PDP Unix Preservation Society 发展而来,The Reg 在讨论第一个 C 编译器时提到过这个组织。

2009 年,Toomey 写了一篇关于破译 Ritchie 的四盘备份磁带努力的文章。Ritchie 指出,从这些古老的、零散的、未记录的备份中重建很多内容是很困难的;Toomey 对此进行了更详细的讨论。结果发现,这些磁带上还有二进制文件 —— 而且找到了足够多的二进制文件来重新组装一个可引导的操作系统。

起初,Gao 只能在 Angelo "aap" Papenhoff 构建的特定 PDP-11 模拟器上启动恢复的操作系统。Papenhoff 评论说:"这是非常令人兴奋的消息!说实话,我有点惊讶我的模拟器能运行它。它不是特别灵活,也没有很多功能。"

随后,他在功能更完整的 SimH 模拟器上成功运行了它。该软件和磁盘镜像可在 GitHub 上获取。

来源:The Register

0赞

好文章,需要你的鼓励

2025

02/25

10:15

分享

点赞

邮件订阅