UNIX System III on PDP-11

The distribution files that you could once get from TUHS (mirrored here) are not in the original format. I recreated the original distribution tape from them and you can find the result here.

Make sure you have the setup document, because that's what we'll follow and it contains more info than this quick guide.

Installing the root file system

Create a file install.ini:

set cpu 11/70
set cpu idle
set rp0 rp06
att rp0 disk.hp
att tm0 dist.tape
b tm0

Run simh and install the root file system according to the instructions:

% pdp11 install.ini

PDP-11 simulator V4.0-0 Beta        git commit id: 8b1af8b8
Disabling XQ
install/install.ini-4> att rp0 disk.hp
RP0: creating new file
Overwrite last track? [N]
UNIX tape boot loader
UNIX -- Initial Load: Tape-to-Disk

The type of disk drive on which the Root file system will reside,
as well as the type of tape drive that will be used for Tape 1
must be specified below.

Answer the questions with a 'y' or 'n' followed by
a carriage return or line feed.
There is no type-ahead -- wait for the question to complete.
The character '@' will kill the entire line,
while the character '#' will erase the last character typed.

RP03 at address 176710?: n
RP04/5/6 at address 176700?: y
Drive number (0-7)?: 0
Disk drive 0 selected.

Mount a formatted pack on drive 0.
Ready?: y

TU10/TM11 at address 172520?: y
Drive number (0-7)?: 0
Tape drive 0 selected.

The tape on drive 0 will be read from the current position
at 800bpi, 5120 characters (10 blocks) per record,
and written onto the pack on drive 0 starting at block 0.

Ready?: y
Size of filesystem to be copied is 6000 blocks.
What is the pack volume label? (e.g. p0001): 
The pack will be labelled p0001.
The boot block for your type of disk drive will now be installed.

The file system copy is now complete.

To boot the basic unix for your disk and tape drives
as indicated above, mount this pack on drive 0
and read in the boot block (block 0) using
whatever means you have available; see romboot(8), 70boot(8).

Then boot the program unixhptm using diskboot(8).
Normally:  #0=unixhptm

The system will initially come up single-user; see init(8).
If you have an upper case only console terminal,
you must execute: stty lcase; see stty(1).

After UNIX is up, link the file unixhptm to unix using ln(1).
        # ln /unixhptm /unix

Set the date(1).

Good Luck!

The tape will now be rewound.


HALT instruction, PC: 002460 (BR 2456)
sim>

Booting UNIX

Just continue from the previous prompt to boot from hard disk:

sim> b rp0
#0=unixhptm

UNIX/3.0.1: unixhptm
real mem = 262144 bytes
avail mem = 195776 bytes
unix                    
single-user
#

If you want, change erase (default #) and kill (default @) to whatever you like using stty, this is what I do:

# stty erase <press backspace> kill <press ^U>

Installing the rest of the tape

Here we pretty much just follow '2.6 Initial Load of /usr' of the setup document except we make a bigger filesystem:

# echo </dev/mt4

# echo </dev/mt4

# echo </dev/mt4

# echo </dev/mt4

# cd /
# mkfs /dev/rrp1 322278 7 418
isize = 65496
m/n = 7 418
# labelit /dev/rrp1 usr p0002
Current fsname: , Current volname: , Blocks: 322278
Date last mounted: Wed Oct 26 14:57:33 1983
NEW fsname = usr, NEW volname = p0002 -- DEL if wrong!!
# mount /dev/rp1 /usr
# cd /usr
# cpio -idmB </dev/rmt4
7850 blocks
# cd /usr/src
# cpio -idmB </dev/rmt4
3200 blocks
# cpio -idmB </dev/rmt4
16000 blocks
# cd /usr/man
# cpio -idmB </dev/rmt4
7560 blocks

Now we configure the system so we can go into multiuser mode:

# mkdir /tmp
# mkdir /usr/adm
# ed /etc/rc
1197
/umount/
                : put umounts here
a
                /etc/umount /dev/rp1
.
/mount/
        : put mounts here
a
        /etc/mount /dev/rp1 /usr
.
w
1246
q
# ln /unixhptm /unix

Now halt the system:

# sync
# sync
# sync
# ^E
Simulation stopped, PC: 002306 (MOV (SP)+,177776)
sim> q
Goodbye

Booting the installed system

Create a file boot.ini:

set cpu 11/70
set cpu idle
set rp0 rp06
att rp0 disk.hp
b rp0

And run simh:

% pdp11 boot.ini 

PDP-11 simulator V4.0-0 Beta        git commit id: 8b1af8b8
Disabling XQ
#0=unix

UNIX/3.0.1: unixhptm
real mem = 262144 bytes
avail mem = 195776 bytes
unix                    
single-user
# init 2
# process accounting started
errdemon started
cron started
multi-user
type ctrl-d

login: root
UNIX Release 3.0
#

And that's it! There is some more stuff you can or want to do, but System III needs a little less hand holding than the earlier systems so I leave that to you.