top of page

Unix v4 已恢复:在 SimH 模拟器上还原首个 C 内核

已更新:6月17日

Unix v4 Recovered: Restoring the First C Kernel on a SimH Emulator

五十多年来,计算机历史长河中一个至关重要的环节一直处于缺失状态。虽然该操作系统的后续版本成为了现代计算的基石,但 Unix v4——这个可以追溯到 1973 年的版本——在很大程度上被认为已淹没在时间长河中。直到最近,存放在犹他大学档案馆的一盘 9 轨磁带被成功镜像并修复,这一现状才得以改变。

这不仅仅是一件博物馆陈列品。由于这个版本标志着操作系统从汇编语言迁移到 C 语言的特定时刻,它代表了软件可移植性的诞生。随着恢复工作的完成,爱好者和研究人员现在可以探索这一历史遗物。代码已公开,文档可阅读,且得益于虚拟化技术,你今天就可以在笔记本电脑上启动这个 1973 年的运行环境。

用户体验:在 SimH 模拟器上运行 Unix v4

User Experience: Running Unix v4 with the SimH Emulator

在深入研究历史机制之前,让我们先看看你实际上是如何与这个系统交互的。恢复后的 Unix v4 功能完备。它不仅仅是代码的扫描版 PDF;它是一个可以执行的实时操作系统。

然而,不要指望会有无缝的“即插即用”体验。运行一个来自 1973 年的操作系统需要弥合五十年的硬件鸿沟。让这段代码重焕生机的标准方法是使用 SimH emulator,这是一个功能强大的工具,旨在模拟 DEC PDP-11 等历史硬件,即 Unix v4 最初所运行的小型机。

启动过程

运行这个版本并不像挂载 ISO 镜像那么简单。根据社区测试和恢复团队的笔记,这个过程感觉就像是一场实验室实验。在这里,你不仅仅是一个用户;你扮演的是系统操作员的角色。

  1. 环境配置: 你需要一个已配置的 SimH emulator 实例,专门设置为模拟 PDP-11 架构。

  2. 磁带加载: 恢复的 40MB 数据集将作为你的磁带输入。

  3. 编译:与预先打包好的现代发行版不同,据报告显示,你必须先建立一个初始引导环境,然后自行编译操作系统的各个部分。

摩擦点

这是一个原始的计算环境。没有任何安全护栏。用户已成功在以下环境运行:SimH emulator 设置 经常会注意到用户反馈与现代 Linux 或 BSD shell 相比有着鲜明的差异。命令非常简练。错误提示则晦涩难懂。

一个经过证实的案例涉及一名用户通过在 IRIX 工作站上运行模拟来弥合时代鸿沟,这增加了历史复杂性。对于大多数人来说,挑战在于理解文件系统层级结构以及那个时代 C 编译器的特定限制。它虽然可以运行,但要求你必须理解它自认为正在控制的硬件。

犹他大学的发现

The Discovery at the University of Utah

幸存的 Unix v4归根结底在于运气以及大学研究人员的囤积习惯。这段特定的磁带是 3M 公司制造的 9 轨磁带卷。几十年来,它一直存放在犹他大学计算机学院的档案库中。

这盘磁带的渊源意义非凡。它最初由 Martin Newell 接收。Newell 是一个在计算机科学领域举足轻重的名字——他是“犹他茶壶”(Utah Teapot)的创造者,那是计算机图形学中的标准参考对象。当 Newell 在革新 3D 建模的同时,显然他也在备份操作系统。

这盘磁带并没有被贴上“珍宝”的标签。它只是堆积如山的旧介质中的一部分,在清理过程中极易被丢弃。由 Bitsavers 的 Al Kossow 领导的修复项目,并非通过标签,而是通过分析原始磁数据识别出了磁带的内容。事实证明,这是 Unix 历史上这一特定过渡时期的唯一已知副本。

为什么 Unix v4 是至关重要的缺失环节

在 20 世纪 70 年代早期,操作系统与它们运行的硬件有着千丝万缕的联系。如果你为 PDP-11 编写操作系统,你必须使用 PDP-11 汇编语言。如果你想将该操作系统迁移到另一台机器,你不仅仅是重新编译,而是必须从头开始重写整个系统。

C 语言革命

Unix v4 改变了这一切。 它是第一个将内核和核心实用程序用 C 语言重写的版本。就在这一刻,Unix 不再仅仅是针对 PDP 的奇特产物,而变成了一款可移植的软件。

恢复的代码证实了这一转变。虽然仍然存在汇编代码——特别是针对最底层的硬件交互——但系统的逻辑是用 C 语言表达的。这种结构使得 Unix 最终能够扩展到每一种可以想象的架构,从超级计算机到你口袋里的手机。

经过验证的代码片段

这次修复还平息了一些历史争议,并让传奇的代码片段重见天日。其中最著名的是在进程切换代码深处发现的一条注释。这行代码简单地写着:

“你不应该理解这个。”

多年来,这条注释仅通过轶事或后来的快照为人所知。在 Unix v4 源码树的原语境中看到它,提供了一种与开发者(Ken Thompson 和 Dennis Ritchie)之间的切实的联系,他们当时意识到自己正在进行复杂的内存操作,这会让未来的读者感到困惑。

恢复工作的技术分析

Technical Analysis of the Recovery

从具有 50 年历史的磁带中恢复数据是一场与物理规律的赛跑。这些磁带上的磁性氧化物通过粘合剂与塑料背基结合,而粘合剂会随时间降解,通常会变得粘稠或完全脱落(这种现象被称为“粘性脱落综合征”)。

数字化过程

Al Kossow 并没有简单地将这盘磁带放入标准的驱动器中。老式磁带驱动器的机械压力可能会直接剥离背基上的氧化层,从而永久性地破坏数据。

相反,团队使用了一种专门的、温和的转录方法,涉及高速多通道 A/D(模拟到数字)转换器。他们读取的不是“文件”,而是直接从物理介质中读取磁通量变换。这些原始数据非常庞大——远超磁带原始的 40MB 容量。

从磁通量到文件

原始转储数据是在具有海量开销的现代环境中处理的。软件在分析并确定 1 和 0 的实际位置时,大约需要 100GB 的 RAM 来保存变换数据。

这次保护工作的关键人物 Len Shustek 编写了自定义程序来解读这张磁力图。软件必须解释信号时序以重建比特流。这是取证计算。他们从本质上是磁噪声的数据中重建了Unix v4文件系统的逻辑。

结果是一个完整的快照。它包含了内核、用户空间实用程序以及文档,所有这些都精确地追溯到 1973 年 11 月。

遗产与现代应用

Legacy and Modern Application

发布 Unix v4 源代码提供的不仅仅是怀旧。它为理解复杂性提供了一个基准。现代操作系统由数百万行代码组成,这使得单个人几乎不可能掌握整个系统。

Unix v4 非常小巧。 它是可以理解的。单个学生或工程师就可以阅读内核源码,并将操作系统的整个逻辑掌握在脑海中。这使其成为一个极具价值的教育工具。

当你在一个 SimH 模拟器,你正在与一台支持多用户和抢占式多任务处理的机器交互,而它仅在几 KB 的内存上运行。它提醒着人们何为效率。在此版本中发现的工具——grep、diff、cat——是当今开发者所用工具的直系祖先。它们的工作方式基本相同,证明了 1973 年确立的设计哲学在根本上是完善的。

对于社区而言,接下来的步骤涉及文档编制和稳定化。虽然磁带已被读取,但围绕 轻松运行 Unix v4 的生态系统仍在构建中。 准入门槛仍然很高,需要熟悉遗留硬件架构。但数据是安全的。时间线上的空白已被填补。

常见问题解答:Unix v4 与历史修复

问:我可以直接在现代笔记本电脑上安装 Unix v4 吗?

答:不可以,Unix v4 是为 DEC PDP-11 编写的,无法在 x86 或 ARM 处理器上原生运行。你必须使用硬件虚拟化软件(如 SimH emulator)来转换指令。

问:Unix v4 与之前的版本(如 v1 或 v3)有何不同?

答:主要区别在于语言实现。Unix v4 是第一个将内核用 C 语言重写的版本,摆脱了纯汇编语言,并使操作系统能够移植到其他硬件。

问:如何从衰减的磁带中恢复数据?

答:档案保管员使用高速模数转换器将磁带的磁通量捕获到海量 RAM 缓冲区中。然后,定制软件分析这些波形以重建二进制数据,而不依赖于旧磁带驱动器的物理逻辑。

Q: “你不必理解这段代码”这段注释是真的吗?

A: 是的,恢复的数据确认了源代码中确实存在这段注释。它出现在一段复杂的进程切换代码中,作为对其他开发者关于该特定例程复杂性的警告。

Q: 这盘特定的磁带是从哪里来的?

A: 这盘磁带是在犹他大学的档案库中发现的。它最初属于 Martin Newell,他是一位因创建 Utah Teapot 3D 模型而闻名的计算机科学家。

Q: 恢复出的 OS 有多大?

A: 整个恢复的数据集大约为 40MB。然而,按照现代标准,操作系统本身非常小,旨在运行在核心内存非常有限的机器上。

 
 

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

在你的大脑里添加一个搜索栏

Ask remio

记住一切

​无需整理

bottom of page