Bringing PDP-7 Unix Back to Life

A few months back I found out that Norman Wilson had been sitting on a bunch of documents that had PDP-7 Unix source code. Argh! I knew that Dennis Ritchie had these documents, but I'd assumed that they had been lost of disposed of when dmr passed away. But Norman had made photocopies of them.

So Norman has scanned them in, and they are now in the Unix archive here as the files 0*.pdf. There's kernel code and some application code. I've kicked off a project to see how much of this we can resurrect. The Github repository is DoctorWkt/pdp7-unix and the mailing list is on minnie.

It's only been going for about a week now, but there's about half a dozen people involved. The others have typed in most of the code, and I've written a simple PDP-7 assembler in Perl, and got the beginnings of a PDP-7 user-mode simulator written as well. I've learned enough PDP-7 assembly programming to get my own cat program going. That requires about a dozen PDP-7 instructions plus about six systems calls to be simulated. Bob Supnik deduced the layout of the command-line arguments, too.

Overall, it's not bad progress for the first week. We've got the source to as, bc, cat, ed, init and a few other utilities, but the shell and utilities like ls are missing. We will have to rewrite these from scratch. The hard bit will be bringing the kernel up and working out what bugs are in there. This is all eerily reminiscent of the unix-jun72 project, except that we have less source this time and even less documentation.

I wonder what things we'll find out …