重现90年代:安装苹果A/UX 1.1系统
速览
这是关于如何安装苹果公司早期Unix系统A/UX 1.1的教程,作者通过模拟90年代的环境进行操作。文章展示了这一古老系统的安装步骤和特点,对技术历史爱好者有参考价值。
AI 深度解读
背景
A/UX 是 Apple 在 1988 年至 1995 年间推出的 UNIX 操作系统,专门运行于基于 68k 处理器的 Macintosh 机型。它要求系统必须配备内存管理单元(MMU)以实现进程隔离——可以是 68020 平台的可选协处理器 68851 PMMU,也可以是 68030/68040 集成 MMU;同时还需要浮点运算单元(FPU)。因此 A/UX 只能运行在高端机型上,例如 Macintosh II 系列和后来的 Quadra 系列,而 LC 系列则无法支持。
近日,一位开发者成功在自制的 Macintosh 模拟器 Snow 上引导并稳定运行了 A/UX 1.1 版本。此前 A/UX 1.1 的安装介质几乎未被公开存档,最接近的版本是一个已经预装好的 1.1.1 镜像,但当时在 Snow 上无法正常工作。这次突破得益于 Dominic Sharp 提供的一套新归档的 A/UX 1.1 安装磁盘组。
核心内容
获取与准备安装介质
Dominic Sharp 通过 Tinker Different 社区联系到作者,他手中有一套 A/UX 1.1 安装盘,但不确定磁盘状态。整套介质包含 34 张 800K GCR 格式软盘镜像,最初以原始磁通翻转(flux)镜像形式存在。作者首先使用 Applesauce 工具将 flux 镜像转换为可用的磁盘镜像。
模拟器适配
Snow 模拟器原本已经支持 A/UX 所需的 CPU、FPU 和 PMMU,但仅模拟了 Macintosh Display Card 8-24 显卡,而 A/UX 1.x 对视频硬件非常挑剔,并不确定是否支持该卡。根据 A/UX 兼容性信息网站 A/UX Penelope 的说明,A/UX 原生支持 Macintosh II 显卡(“Toby”),因此作者在 Snow 中将该显卡实现为一个可选选项。
安装过程
A/UX 的安装过程需要按照官方 UNIX 风格的操作指南进行(这些指南已归档在 Bitsavers 上)。具体步骤:
-
启动“System setup and README”磁盘:首先手动分区,然后违反直觉地在 Mac 分区上安装 System 6。这是因为 A/UX 的引导过程需要一个 Mac 应用程序——SASH(A/UX 独立 Shell) 来启动。SASH 充当“预启动环境”,用于加载 A/UX 内核以及执行磁盘和恢复操作。
-
分区与基础系统:使用熟悉的 HD SC Setup 工具进行分区(该工具内置了 A/UX 的模板布局)。之后复制“SASH and utilities”磁盘的内容到新分区。
-
引导 A/UX 安装程序:从 “Floppy Launch”磁盘 引导,该磁盘自动启动 SASH,加载 A/UX 内核,然后提示插入“Floppy Root”磁盘。这一阶段(安装第 1 部分)会格式化 A/UX 分区并复制引导所需的系统文件。
-
修复模拟器 Bug:在安装过程中,作者遇到了两个 Snow 模拟器的 Bug:
- ADB 键盘 Bug:在 SASH 环境下,由于 ADB Talk 2 实现错误导致修饰键(如 Command、Control)被卡住。问题在于寄存器 2 的键位/修饰键位是“低电平有效”,而之前的实现错误地将其处理为高电平有效。作者修改了
keyboard.rs中的代码。 - SCSI 控制器 Bug:内核启动时卡在等待 NCR 5390 控制器的“DMA end”位。原因是 DMA 结束标志位的判断条件缺失了
dma_mode()检查。作者修改了controller.rs中的逻辑。
- ADB 键盘 Bug:在 SASH 环境下,由于 ADB Talk 2 实现错误导致修饰键(如 Command、Control)被卡住。问题在于寄存器 2 的键位/修饰键位是“低电平有效”,而之前的实现错误地将其处理为高电平有效。作者修改了
-
安装第 2 部分:修复后,从硬盘重新启动,再次通过 SASH 引导 A/UX,进入安装第 2 部分。这个过程需要依次插入 26 张“Installation disks”(安装磁盘),包含实际的操作系统。整个过程耗时较长。
-
完成安装:26 张磁盘安装完毕后,再次重启,最终得到一个由硬盘上的 SASH 引导的完整 A/UX 1.1 系统。
图形界面与额外功能
A/UX 1.x 是否提供图形界面?作者发现,如果通过 init 2 进入多用户模式,可以运行少数图形应用程序,这些程序被称为 Toolbox applications(基于 Macintosh ROM 中的 GUI Toolbox)。但该版本只有三个这样的应用程序可用。作为对比,A/UX 3.x 的图形界面更丰富,甚至可以通过 mac32 模拟层运行 Macintosh 应用程序(例如 Myst)以及支持 X11 应用程序。
Dominic Sharp 还拥有一份 磁带安装介质。如果未来该磁带被归档,作者计划在 Snow 中添加模拟的 Apple 40SC 磁带驱动器,从而支持从磁带安装。
关键要点
- A/UX 1.1 的安装介质:此前几乎无公开存档,本次通过 Dominic Sharp 的收藏获得 34 张软盘镜像,最终会公开。
- 安装过程的特殊性:需要先安装 System 6 作为引导基础,再通过 SASH 启动 A/UX 安装程序,最终经过 26 张磁盘完成系统部署。
- 模拟器修复:Snow 模拟器需要解决两个低层 Bug——ADB 键盘寄存器极性错误和 SCSI 控制器 DMA 结束位判断错误,这两个 Bug 在 A/UX 3.x 中未暴露,但在 1.1 版本中显现。
- 硬件兼容性:A/UX 1.x 对显卡非常挑剔,仅原生支持“Toby”显卡,因此模拟器需新增该显卡选项。
- 图形界面:A/UX 1.x 的图形应用非常有限,仅有三个 Toolbox 应用可用;而 A/UX 3.x 支持 Mac 应用和 X11。
- 磁带安装选项:存在磁带安装方式(尚未归档),若未来可用,模拟器将加入磁带驱动器支持。
意义与影响
这次成功在模拟器 Snow 上安装并运行 A/UX 1.1,不仅是复古计算社区的一次技术成就,更具有多层意义:
- 填补存档空白:A/UX 1.1 作为早期版本此前几乎无公开可用的安装镜像,这次归档将完整保留一套原始安装盘状态,为研究 Apple 早期 UNIX 历史提供了珍贵材料。
- 推动模拟器改进:修复过程中发现的两个底层 Bug 展示了模拟器在不同 OS 版本下的兼容性差异。这些修复不仅让 A/UX 1.1 得以运行,也提升了 Snow 模拟器对更早期 Mac 软件的支持水平。
- 理解 Apple 的 UNIX 演进:A/UX 1.x 的安装过程(依赖 System 6、SASH 预引导、受限的图形应用)与后续版本形成鲜明对比,揭示了 Apple 在整合 UNIX 与 Macintosh 生态上的早期探索路径。
- 社区协作典范:介质的提供者 Dominic Sharp 与模拟器开发者通过 Tinker Different 等复古计算社区直接合作,体现了开源/档案馆藏文化中“分享-修复-公开”的良性循环。随着最终公开存档,更多人可以在浏览器中通过 Infinite Mac 模拟 A/UX 3.1.1(已支持),未来也可能直接体验 1.1 版本。
