Skip to content

AaronJackson/2.11BSD-Distribution-Builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

2.11BSD Distribution Generator

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.

Expectations

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.

Description of Tapes

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 FileRecord SizeRecordsContents
05121Primary tape boot block
5121A second copy of the boot block
51269boot program
1102437disklabel program
2102433mkfs program
3102435restor program
4102432icheck program
510240285root file system dump
6102403368/usr excluding /usr/src as a tar dump
710240519/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 FileRecord SizeRecodsContents
0102404092/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.

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

Performing an Installation

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.

List of media

The tar files have been compressed and need to be extracted before they can be written to tape.

Patch LevelSIMH .taproot.dumpfile6.tarfile7.tarfile8.tar
458211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
459211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
460211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
461211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
462211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
463211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
464211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
465211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
466211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
467211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
468211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
469211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
470211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
471211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
472211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
473211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
474211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
475211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
476211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
477211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
478211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz
479211bsd.taproot.dumpfile6.tar.gzfile7.tar.gzfile8.tar.gz

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published