Bringing PDP-7 Unix Back to Life

28th February 2016

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 or 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 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 here and the mailing list is on minnie.

It's only been going for about a week now, and there's about half a dozen people involved. Several people have typed in most of the code; 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 for us.

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 ...