Installing 7th Edition Unix on Simh-PDP11

This page collects information about the installation of 7th Edition Unix on the PDP-11 emulator of the computer simulation package Simh, including the installation of the a terminal multiplexer drive that will allow multiple users to telnet into the Unix system and the installation of a line printer driver that will allow "printing" from the Unix system into a text file created by Simh.

First you will need to download:

Follow the instructions from the simh distribution page to dowload and compile simh. Then follow the instructions included with the Unix distribution to install Unix on simh. In doing so, you will follow the instructions originally provided with the 7th Edition Unix distribution to install and set up Unix on your PDP11. After completing this step you should have a working 7th Edition Unix system running on simh, but you have neither multi-terminal capability nor a simulated printer.

To add multi-terminal capability you must configure simh to simulate the dz11 terminal multiplexer and install the dz11 device driver into the Unix kernel. To configure simh, add the following lines to your simh config file:

set tto 7b
set dz 7b
set dz lines=16
attach -am dz 4000

Now follow the instructions found at http://www.ljosa.com/~ljosa/v7-dz11 to build...

As the above link seems to be dead, I have included the instructions inline here, as follows:


[This section copied from Vebjorn Ljosa]

Unix V7 contains a driver for the DZ11 8-port terminal multiplexer, but the driver is not included in the mkconf program, which is used to configure a new kernel. This page provides a patch for mkconf.c and describes how to make V7 work with the DZ11.

The short story

  1. Download this patch and apply it to /usr/sys/conf/mkconf.c
  2. Rebuild mkconf.
  3. Write a configuration file that includes the line dz.
  4. Run mkconf, then build a new kernel with make.
  5. Look in /usr/sys/conf/c.c to find out which major number to use for the tty devices.
  6. Use mknod to create character device files tty00, tty01, ..., tty15 in /dev. You determined the major number in the previous step, and the minor number should be 0, 1, ..., 15.
  7. Edit /etc/ttys. Change 00tty00 to 10tty00 and so on for all the tty devices you created in the previous step.
  8. Reboot with your new kernel.

Some details

I installed Unix V7 on version 3.1-0 of the Simh PDP-11 simulator using the Keith_Bostic_v7 tape. If you got your V7 installation from some other source, run sum /usr/sys/conf/mkconf.c and see if it gives you something different than 04000 29. If so, you may want to compare your version of mkconf.c to that in the Henry_Spencer_v7 tarball.

V7 was released in 1979, nine years before Larry Wall wrote patch, so I also prepared an ed script with my changes to mkconf.c. Feed it to ed in order to patch mkconf.c.

If you transfer the patch to your PDP-11 using cut and paste in an xterm or some similar method, verify that tab characters have not been translated into spaces. Mkconf generates the assembly file l.s, and the assembler distinguises between tabs and spaces.

In installing V7, I found Hellwig Geisse's instructions and mktape utility helpful.

Tim Newsham notes that he had to set the DZ11 in Simh to 16 lines to avoid a panic. Second, he had to attach the device with the -m flag to make it use modem control lines.


The 7th Edition Unix distribution hosted at https://homepages.thm.de/~hg53/pdp11-unix does not contain a line printer driver. To get the simulated line printer working, you must add a line printer driver to the Unix source and rebuild the kernel to include it. The steps to do so are:

updated 14-11-2015