Having spent some time working on UNIX V6 using the SIMH machine emulator for the PDP11/40. I decided to do the same for UNIX V7.
The version I've used runs on a simulated PDP11/70 and is from Keith Bostic. It can be found on The Unix Heritage Society archive. It is a tape that you can unpack to create a single RP06 image. You can avoid the tape unpacking and use the RP06 disk image see bootstrap.
I must acknowledge the work of the folks at The Unix Heritage Society who have made it their business to collect old source and versions of the Unix system. Along with all the people that made tapes and so left us some history. The TUHS archive is a goldmine for people looking back at what was done.
All of the below are fully documented with installation instructions. Directories called orig contain the original code, makefiles and shell scripts contain compilation and installation commands.
This list is pretty much in the order that I worked on things.
-
bootstrap - bootstrap SIMH running V7.
-
v7conf - tools to recompile the kernel to add in devices, and copies of the distribution including an initial RP06 image.
-
sh-test - I found that my distribution was missing /bin/[, needed to support if statements in the shell.
-
uxtp - I needed something to get files in and out of V6 so I decided to implement a version of tp, V6's magnetic tape archive program. I continued to use my uxtp program to get files in and out of V7. V7 does have the tar program, but its format is binary and isn't accessible from modern versions of tar.
-
halt - Back in the 1970's, I realised that the file system mostly failed after Unix was shut down. I created a command that would kill all the running processes, and added a system call to the kernel to halt the system safely. Doing this made the filesystem breakages mostly disappear. You tend to take a simulated system up and down considerably more frequently than a physical system, so re-implementing this feature was a must. I've changed the way it works a little for V7.
-
ssp - I installed a version of Bill Joy's ssp program so I could suppress blank lines when using the man command.
-
fsck - There was a release called the v7 addenda which can be found on the TUHS archive, download v7addenda.tar.gz. The distribution contains a version of the fsck program, I've put some time to make some small changes to it can be used on V7.
-
tty - The V7 terminal driver was designed to work with printing devices and really doesn't work well with screens. I hated it in the 70's and that hate hasn't gone away. This version of tty originated on a distribution that came from Nijmegen University. It allows you to use the DELETE key to delete characters and for the characters to be removed from the screen when it's hit. Most control characters can be changed using the stty command, which I decided to re-write because there wasn't a version supporting the new tty driver.
-
time - V7 supports 32-bit arithmetic and times post 2000 can be displayed and entered. Some small changes are needed to allow this. Some programs that use localtime can need changes and recompiling. I've also found a way to set the time on system boot.
Several licenses apply to this repo - see License.