UNIX System V Release 1 on PDP-11

You can get various SysV distributions from archive.org. I've put the distribution files here and a complete distribution tape here.

Unfortunately there don't seem to be any documents in the distribution, but the installation is very easy if you've installed SysIII.

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:

% pdp11 install.ini 

PDP-11 simulator V4.0-0 Beta        git commit id: 8b1af8b8
Disabling XQ
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 7000 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 unixgdtm using diskboot(8).
Normally:  #0=unixgdtm

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 unixgdtm to unix using ln(1).
        # ln /unixgdtm /unix

Set the date(1).

Good Luck!

The tape will now be rewound.


HALT instruction, PC: 002422 (BR 2420)
sim>

Booting UNIX

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

sim> b rp0
#0=unixgdtm

UNIX/sysV: unixgdtm
real mem = 262144 bytes
avail mem = 185280 bytes

INIT: SINGLE USER MODE
#

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

The installation is very similar to SysIII again:

# echo </dev/mt4

# echo </dev/mt4

# echo </dev/mt4

# echo </dev/mt4

# cd /
# mkfs /dev/rrp1 322278 7 418
bytes per logical block = 512
total logical blocks = 322278
total inodes = 65496
gap (physical blocks) = 7
cylinder size (physical blocks) = 418 
# labelit /dev/rrp1 usr p0002
Current fsname: , Current volname: , Blocks: 322278, Inodes: -40
FS Units: 512b, Date last mounted: Wed Dec  1 14:49:01 1982
NEW fsname = usr, NEW volname = p0002 -- DEL if wrong!!
# mount /dev/rp1 /usr
# cd /usr
# cpio -idmB </dev/rmt4
28530 blocks
# cpio -idmB </dev/rmt4
750 blocks
# cpio -idmB </dev/rmt4
230 blocks
# mkdir man
# cd man
# cpio -idmB </dev/rmt4
4720 blocks
# cpio -idmB </dev/rmt4
300 blocks
#

Configure the system for multiuser:

# ed /etc/rc
751
/mount/
        : put mounts here
a
        /etc/mount /dev/rp1 /usr
.
w
777
q
# ln /unixgdtm /unix

Now halt:

# sync
# sync
# sync
# ^E
Simulation stopped, PC: 001666 (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/sysV: unixgdtm
real mem = 262144 bytes
avail mem = 185280 bytes

INIT: SINGLE USER MODE
# init 2

INIT: New run level: 2
Is the date Wed Dec  1 14:54:14 EST 1982 correct? (y or n) y
Do you want to check the file systems? (y or n) n
-su: /usr/lib/acct/startup: cannot execute
process accounting started
errdemon started
cron started

Console Login: root
UNIX System V
#

And we're done!