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.

6 Likes

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

Hello, I find it amazing that you managed to do this, now I’m pretty new to retro computing, and have a small problem on my hands. I have access to a pdp 11/34 which has (or rather had) a working unix V6 installation on an old RL0 drive. Now the unix does not boot anymore. Do you have an image available or documentation on how to re-create your system?

2 Likes

I have a (never-completed) set of scripts that builds an RL01 image from “pristine” sources, using SIMH:

I am aware of a lot of ways to make this better, but haven’t had time to work them in; in particular, the back-ported RL driver is broken for RL02 (it can only successfully address the first half). It may or may not be helpful to you!

The first thing I would do is use PDP11GUI (or similar) to image the RL disk you have that was previously working, save a copy of that for backup, and then prod at it in SIMH to see if the problem can be identified. You should be able to mount your image from the image created by my scripts, or from one of the images provided by (e.g.) the PiDP-11 folks.

Good luck getting it working, and let me know if I can help in some way!

Thank you! I’ll hopefully be able to put this to good use. Tbh I’m still learning and will work together with some people more experienced than me, but this may be a pretty nice project for me to learn more about the PDP11 and old (and new) computers in general! I just don’t know when I’ll be able to provide feedback since I can only access the machine once every week

1 Like

Retrocomputing is seldom in any big hurry. :slight_smile:

Let me know if there’s anything I can do to help!