Installing UNIX Sixth Edition

From Computer History Wiki
Revision as of 16:03, 22 October 2016 by Jnc (talk | contribs) (Installation process: note one can't load unix directly from the tape)
Jump to: navigation, search

There is a Setting up UNIX - Sixth Edition document, but it is mostly a checklist of what to do to install Unix on a PDP-11 (one of the models supporting memory management); it does not provide any technical detail on what is actually happening.

UNIX Sixth Edition (often called UNIX V6) was normally installed from a tape; it was possible to install UNIX on a machine without a tape drive, by copying disk packs with UNIX on them, but this was not Bell Laboratories' usual distribution method. Thus installing UNIX V6 usually required a machine with a tape drive, and one or more disk drives.

The supported tape drives were the TU10, on a TM11 UNIBUS controller, and the TU16, on a TM02 MASSBUS controller. The supported disk drives were the RK05, on an RK11 UNIBUS controller, the RP03 on an RP11 UNIBUS controller, and the RP04, with an internal controller which connected to a MASSBUS.

The installation process for V6 seems superficially to be much like that for V7, in that a tape is used, which contained a number of small stand-alone programs, followed by the file-systems, but the similarity is purely superficial; the details of the process are wholly different.

Installation process

The first stage is a tape bootstrap (loaded from block 0, or block 1, depending on the tape drive/controller on the system). That is then used to load an intermediate stage (named 'xxyy', where 'xx' is "tm" or "ht", and 'yy' is "rk", "rp" or "hp"), which is the program that copies the disk images to the actual drives.

That program is used to copy 3 disk pack images from the tape, to disk; it is also used to install an appropriate disk bootstrap in block 0 of the root drive.

It is not possible to boot V6 Unix directly from a V6 distribution tape; all one can do is copy the disk images from the tape to the disk, and then boot from the disk.

Installation tape contents

The first 100 512-byte tape blocks contain a number of small programs, both tape and disk bootstraps, and programs to copy the tape contents to disk.

  • Block 0 on tape - mboot (tm tape booter)
  • Block 1 on tape - hboot (ht tape booter)
  • Block 2-xx - a tp-format section containing the tape->disk copy programs
  • Block 98 on tape - hpuboot
  • Block 99 on tape - rpuboot
  • Block 100 on tape - rkuboot

The copying programs (6 of them, one for each tape/disk combination) are stored in the block "2-xx" area.

Blocks 100-4099 are an image an RK05 pack containing a UNIX root partition, which contains everything needed to allow UNIX to run: all the commands, and the source for the operating system (to allow reconfiguration of the OS to match the system's hardware); blocks 4100-8099 are an image of an RK05 pack which contains source for all the commands; and blocks 8100-12099 are an RK05 pack image which contains all the documentation.

Programs

The first stage booter is "tpboot.s"; this is assembled with either "tm.s" or "ht.s" to produce the first-stage bootstrap that goes in blocks 0 and 1 of the tape. It takes a file-name, 'xxyy' as above, entered at the console.

"mcopy.s" is the tape copier program (assembled with either "tm.s" or "ht.s", and one of "rk.s", "rp.s" and "hp.s"), to produce the 'xxyy' files above.

"fsboot.s" is the disk bootstrap, assembled with "rk.s", "rp.s" or "hp.s" to produce the various disk bootstraps.

mcopy.s uses R5 (which contains a pointer to the console print/input routines), but does not set it up; it is set up by mboot.s, which will have run previously (to load the appropriate disk-controller-specific version of mcopy off the tape).