Note: Any instructional information provided here is just re-worded from the original distribution’s ~setup.ps~ file.
The purpose of this repo is two-fold. First, it should handle the creation of distribution tapes for all patch levels, while performing a few tests to ensure that they work. Second, it should roughly describe how to utilise these distributions to perform the installation of 2.11BSD on a real PDP-11, from a tape drive.
Since I have a limited set of equipment available to me, I can only test a limit number of configurations. I will be preparing the tapes from a Linux machine with a PCI SCSI card installed. The SCSI card is used to attach a Compaq DLT4000 tape drive, which will be used for writing the DLT4 tapes.
For testing these distributions, I use the following PDP-11 system:
- PDP-11/73 with 1.1MB of RAM (two 512K cards, plus a MXV11 multi-function card).
- An Emulex UC07 configured for MSCP attached to a SCSI disk or SCSI2SD disk emulator.
- A second Emulex UC07 configured for TMSCP attached to a DLT4000 tape drive. Yes! A DLT4000 will work with a TMSCP tape controller. :-)
I would assume other SCSI MSCP and TMSCP controllers would work fine, but I don’t have any to test with.
Performing a fresh installation of 2.11BSD is done from two tapes. The
first tape contains everything you need to get a system installed, and
the second includes the rest of /usr/src
. This is described in the
tables below.
Tape 1
Tape File | Record Size | Records | Contents |
---|---|---|---|
0 | 512 | 1 | Primary tape boot block |
512 | 1 | A second copy of the boot block | |
512 | 69 | boot program | |
1 | 1024 | 37 | disklabel program |
2 | 1024 | 33 | mkfs program |
3 | 1024 | 35 | restor program |
4 | 1024 | 32 | icheck program |
5 | 10240 | 285 | root file system dump |
6 | 10240 | 3368 | /usr excluding /usr/src as a tar dump |
7 | 10240 | 519 | /usr/src/include and /usr/src/sys as a tar dump |
The boot block is repeated twice as some tape controllers use the second block instead of the firs. The five programs after this are loaded by the boot block, and run without an operating system. They guide you through the process of installing 2.11BSD on your disk.
Tape 2
Tape File | Record Size | Recods | Contents |
---|---|---|---|
0 | 10240 | 4092 | /usr/src , excluding include and sys as a tar dump |
I’ve only tested installation of these tapes from a TMSCP tape controller, namely using an Emulex UC07 configured for tape use. Also note that if you are using a tape which can accommodate all files, you don’t need to split this across two tapes.
Typically the writing of 2.11BSD tapes would be done from a 2.11BSD system running on an actual PDP-11. Since we only have one PDP-11, the writing of tapes will be performed from a Linux system as described in “Expectations” section earlier.
Writing Tape 1 The first tape must be written using the maketape
program. This can be compiled on a modern Linux system using gcc
,
despite being in K&R C.
$ gcc maketape.c -o maketape
The maketape
program takes two arguments as input. The first is the
path to your tape drive. This needs to be your non-rewinding tape
device node, usually available at /dev/nst0
. The second is a text
file describing the tape files to be written. This can be pulled out
from a 2.11BSD image, but here’s what it should look like:
mtboot 1
mtboot 1
boot 1
* 1
disklabel 2
* 1
mkfs 2
* 1
restor 2
* 1
icheck 2
As you can probably tell, each line shows the file to be written,
along with the number of 512 byte blocks. A line containing an ‘*’
results in an ioctl
call to write the end of file marker.
For the purposes of testing the provided distributions, mkdisttap.pl
is used to join the files together with the appropriate markers for
SIMH. This allows the GitHub workflow to perform a test of the
prepared distribution media too. The installation is handled by an
expect
script which responds appropriately to configure the system
and perform the installation.
If you are installing this on a real PDP-11, you can use this as a
guide, or just follow the setup.ps
file included with the original
distribution.
The tar files have been compressed and need to be extracted before they can be written to tape.