Installing A/UX 1.1 like it’s the 90s

Installing A/UX 1.1 like it’s the 90s

像 90 年代一样安装 A/UX 1.1

Recently, I have been successful in making A/UX boot and run stable on my vintage Macintosh emulator; Snow. A/UX was Apple’s version of UNIX that ran on the 68k-based series Macs. It required a Memory Management Unit to achieve process isolation; either the optional 68851 PMMU on the original 68020-based Macintosh II or the integrated MMU in the 68030- and 68040-based machines. It also required an FPU; making it only run on the higher end machines such as the Macintosh II series and later the Quadra, but the LC was out of luck.

最近,我成功地让 A/UX 在我的复古 Macintosh 模拟器 Snow 上稳定启动并运行。A/UX 是苹果公司基于 68k 系列 Mac 的 UNIX 版本。它需要内存管理单元(MMU)来实现进程隔离;这要么是原始 68020 架构 Macintosh II 上可选的 68851 PMMU,要么是 68030 和 68040 架构机器中集成的 MMU。它还需要浮点运算单元(FPU);这使得它只能在 Macintosh II 系列及后来的 Quadra 等高端机型上运行,而 LC 系列则无缘使用。

A/UX Penelope is a nice resource on A/UX compatibility info. You can try A/UX 3.1.1 on the Macintosh IIx emulated by Snow in your browser on Infinite Mac. Recently I had the chance to play with a newly archived A/UX 1.1 installation media set, courtesy of Dominic Sharp, whom I had been talking to on Tinker Different. Dominic obtained this set and wanted to archive it publicly, but wasn’t sure about the state of the disks. I’m not aware of any A/UX 1.1 software being publicly archived; the closest is a preinstalled image of 1.1.1, which didn’t work yet on Snow at the time. Dominic agreed to share the set with me so I could give it a try and fix Snow in the process.

A/UX Penelope 是一个关于 A/UX 兼容性信息的优秀资源。你可以在 Infinite Mac 网站上,通过浏览器体验由 Snow 模拟的 Macintosh IIx 上运行的 A/UX 3.1.1。最近,我有机会接触到一套新归档的 A/UX 1.1 安装介质,这要感谢我在 Tinker Different 上交流过的 Dominic Sharp。Dominic 获得了这套介质并希望将其公开归档,但不确定磁盘的状态。据我所知,目前还没有公开归档的 A/UX 1.1 软件;最接近的是一个 1.1.1 的预装镜像,但当时它在 Snow 上还无法运行。Dominic 同意与我分享这套介质,以便我进行尝试,并在此过程中修复 Snow 的问题。

The set consists of 34 floppy images, all 800K GCR. They came as raw flux images, which I first converted using Applesauce. First, the proper emulated hardware had to be available. Snow emulates the machine, CPU, FPU and PMMU required, but only emulated the Macintosh Display Card 8-24, which I wasn’t sure was supported by A/UX 1.x, which is particularly picky about its video hardware. According to A/UX Penelope, the Macintosh II video card (“Toby”) is natively supported, so I first implemented this card as an additional option in Snow.

这套介质包含 34 个软盘镜像,均为 800K GCR 格式。它们最初是原始磁通(flux)镜像,我首先使用 Applesauce 将其转换。首先,必须具备合适的模拟硬件。Snow 模拟了所需的机器、CPU、FPU 和 PMMU,但之前只模拟了 Macintosh Display Card 8-24,我不确定 A/UX 1.x 是否支持它,因为 A/UX 对视频硬件非常挑剔。根据 A/UX Penelope 的说法,Macintosh II 显卡(“Toby”)是原生支持的,所以我首先在 Snow 中将此显卡实现为一个附加选项。

Then it was time to get to work with the installation. A/UX came with lovely very UNIX-y binders, which you definitely needed as the OS and installation aren’t exactly straight forward. Luckily, that is archived on Bitsavers. Armed with my digital binders, I proceeded with the installation. To start off the install, we begin with the “System setup and README” disk. We need to partition the disk, and then do something counter-intuitive: install System 6 on a Mac partition. This is because there’s a Mac application that kicks off the A/UX boot process: SASH; the A/UX standalone shell.

接下来是安装工作。A/UX 附带了非常具有 UNIX 风格的精美手册,由于操作系统和安装过程并不简单,这些手册是必不可少的。幸运的是,它们已经在 Bitsavers 上归档了。拿着我的数字版手册,我开始了安装。安装的第一步是使用“System setup and README”磁盘。我们需要对磁盘进行分区,然后执行一个反直觉的操作:在 Mac 分区上安装 System 6。这是因为有一个 Mac 应用程序可以启动 A/UX 的引导过程:SASH(A/UX 独立 Shell)。

This ‘pre-boot environment’ allows for launching an A/UX kernel and also some disk and recovery operations. Partitioning is through the familiar HD SC Setup and can be pretty straightforward; the included HD SC Setup includes a template layout for A/UX. And then, we can move on to install a pretty bare System 6 and afterwards copy the contents of the “SASH and utilities” disk to the new installation. Now, it’s finally time to actually get into A/UX. This happens by booting off the “Floppy Launch” disk. This disk autostarts a SASH, launches an A/UX kernel and will then request the “Floppy Root” disk.

这个“预引导环境”允许启动 A/UX 内核,并执行一些磁盘和恢复操作。分区通过熟悉的 HD SC Setup 进行,过程非常直观;自带的 HD SC Setup 包含一个 A/UX 的模板布局。之后,我们可以继续安装一个精简版的 System 6,然后将“SASH and utilities”磁盘的内容复制到新安装中。现在,终于可以真正进入 A/UX 了。这需要通过“Floppy Launch”磁盘启动。该磁盘会自动启动 SASH,加载 A/UX 内核,然后请求插入“Floppy Root”磁盘。

This begins part 1 of the installation, which formats the A/UX partitions and copies a bootstrapping system into it. At this point, I had to fix a Snow bug, which was causing the modifier keys to be stuck due to an invalid ADB Talk 2 implementation. Interestingly first time this is an issue; even A/UX 3.x was fine with it before.

这开始了安装的第一部分,它会格式化 A/UX 分区并将引导系统复制进去。此时,我不得不修复 Snow 的一个 Bug,该 Bug 由于无效的 ADB Talk 2 实现导致修饰键卡住。有趣的是,这是第一次出现这个问题;即使是之前的 A/UX 3.x 版本也能正常运行。

(Code diff omitted for brevity) (代码差异部分略)

Then, we reboot to the hard disk where we launch SASH and A/UX for real for part 2 of the installation. Here I hit another Snow bug: the kernel launch froze waiting for the NCR 5390’s ‘DMA end’ bit. Again; interestingly never was a problem before, even in newer A/UX versions.

然后,我们重启进入硬盘,启动 SASH 和 A/UX 进行安装的第二部分。在这里,我遇到了另一个 Snow 的 Bug:内核启动时卡在等待 NCR 5390 的“DMA end”位上。同样,有趣的是,这在之前从未成为问题,即使是在更新的 A/UX 版本中也是如此。

(Code diff omitted for brevity) (代码差异部分略)

Part 2 leads us through a whopping total of 安装的第二部分将带我们完成总计……