Booting Unix v6 on a PDP-11/34 from RL01

Continuing the discussion from Looking for Unix-11 for PDP-11:

Some of you may remember that I was previously looking for Unix-11 (or MINI-Unix) for PDP-11 processors without an MMU. A student of mine, Grant Iraci, found a copy of that, but that’s not what this note is about. Upon examining the MINI-Unix distro, it became obvious to me that it didn’t mean “without the 11/45 or 11/70 MMU”, which is what I thought it meant, but “without any MMU at all” — that is, a machine that can address a maximum of 60 kB of RAM (4 kB for UNIBUS addresses bringing it to 64 kB of address space) with no mapping whatsoever.

Some more digging yielded the fact that v6 Unix ran on the PDP-11/40, which is ISA-identical (except for the FPU) with the 11/34A that I have. However, v6 Unix predated the RL01/RL02 hard disk (or at least widespread adoption of them?) and did not normally come with an RL driver. Grant dug out a distribution tape of v6 Unix, and I found an RL02 disk pack image of v6 Unix with an RL02 driver and boot sector. The RL02 image appeared to be 11/23-compatible (not UNIBUS, not the same MMU as the 11/34), and it has some problems (it won’t boot to multiuser mode, for example), but it contained source for the RL02 driver.

Grant pulled the rl.c driver into the working RK05 v6 installation and made some necessary changes to make it compile with the (apparently older) C compiler on the v6 distribution tapes. He was able to build an RL-capable kernel in SIMH and create and mount an RL01 image, then transfer a v6 install to it.

We transferred the RL image over to the hardware PDP-11, and it booted! Seeing that ! boot loader prompt was one of the more exciting things I’ve seen in a long time, and loading the kernel and seeing it drop into multi-user mode even more so.

Here’s a video of a quick boot (no commentary because my phone mic is terrible and the machine is loud):

We still have some work to do to get a complete working system built, but this image was able to recompile its own kernel (you can see me loading newunix in the video) and some casual prodding was quite successful. The image we’re booting does not include the sources for userspace or documentation; we will try to put together an RL02 image that includes everything, as well as documentation for how to build such an image starting from the original distribution tape and emulated (or hardware, I suppose!) RK05 disks.

Because there are a lot of PDP-11/34 machines out there with RL disks, I hope this will bring hardware v6 to more users. We don’t know for sure, but suspect that this is the first time that v6 has been brought up on an 11/34 in many years (because there doesn’t appear to be an image out there on the 'net that Just Works), and certainly the first working install on RL disks in many years.

Lots of credit for this goes to Grant; I did some archaeology, but he did the work of transferring the images and sources from place to place, backporting the RL driver to an older v6 Unix than the one it came from, and building a working disk image from disparate components.


Fantastic! Don’t forget chdir - I would have too…

Not only is this great archaeology and re-engineering, I think it’s a great lesson. Truly understanding the boot process is a fundamental thing, and working on a device driver is a watershed too (I’ve not done it, not properly. I did binary patch a branch in a linux device driver once, for some reason which now escapes me. I think I learnt something but it didn’t fix the problem I had.)

Also a great demonstration that an MMU is a luxury - not needed when desert-island computing.

I wonder how much longer might this have taken without the likes of SIMH…

Interestingly, the image that had the RL driver used CD instead of chdir. It must have changed very early on, or perhaps it was the first patch everyone made.

This particular machine does have an MMU (and 248k of useable memory, which is the maximum it can manage), but it’s a less capable MMU than the 11/45 or 11/70.

This project would never have happened without SIMH or another similar tool, as it would have required access to a machine with three RK05 drives, the requisite tape drive, and an RL0x drive, or else a second machine with a compatible tape drive and the RL. I’m sure such a machine exists, but I certainly don’t have one and don’t know anyone who does. I’m sure that it would have been easier in the 70s to arrange that.

1 Like