Difference between revisions of "Installing UNIX Sixth Edition"

From Computer History Wiki
Jump to: navigation, search
(Add detail)
(Installation tape contents: Also a directory)
 
(25 intermediate revisions by the same user not shown)
Line 1: Line 1:
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 [[PDP-11 Memory Management|memory management]]); it does not provide any technical detail on what is actually happening.
+
There is a [[Setting up UNIX - Sixth Edition]] document, but it is mostly a checklist of what to do to install [[UNIX Sixth Edition]] on a [[PDP-11]] (one of the PDP-11 models supporting [[PDP-11 Memory Management|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 ;istribution method. Thus UNIX V6 required a machine with a tape drive, and one or more disk drives.
+
UNIX Sixth Edition (often called UNIX V6) was normally installed from a tape; it was possible to install UNIX on a machine without a [[magnetic tape drive|tape drive]], by copying [[disk pack]]s 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 drive]]s.
  
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 supported tape drives were the [[TU10]], on a [[TM11]] [[UNIBUS]] controller; or 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, or the [[RP04]], with an internal controller which connected to a MASSBUS.
 +
 
 +
The installation process for V6 seems superficially to be much like [[Installing UNIX Seventh Edition|that for V7]], in that a tape is used, which contained a number of small stand-alone programs, followed by the [[file system]]s, but the similarity is purely superficial; the details of the process are wholly different.
  
 
==Installation process==
 
==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.
+
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, a tape to disk copier (named 'xxyy',  where 'xx' is "tm" or "ht", and 'yy' is "rk", "rp" or "hp"; as appropriate to the machine's hardware configuration).
 +
 
 +
That program is used to copy 3 complete RK pack file system images from the tape, to disk pack(s); it is also used to install an appropriate disk bootstrap in block 0 of the root disk drive. Once that has all been done, it is possible to boot UNIX from disk.
 +
 
 +
It is not possible to boot V6 Unix directly from a V6 distribution tape (as one can with V7); all one can do is copy the disk images from the tape to the disk, and then boot from the disk. Also, since the file systems are provided as images of complete functional [[UNIX file system]]s, it is not possible to install them properly on different disks; to put the contents on different sized disks, one has to perform additional steps once the system is up and running.
 +
 
 +
==Installation tape contents==
  
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.
+
The V6 distribution tape contains a large number of 512-byte records; the first 101 512-byte tape blocks contain a number of small programs, including tape and disk bootstraps, and programs to copy the tape contents to disk, and a [[directory]] which indicates what files are there.
  
===Installation tape contents===
+
* Block 0 on tape - 'mboot' (TM11 tape bootstrap)
 +
* Block 1 on tape - 'hboot' (TM02 tape bootstrap)
 +
* Block 2-24 - a tp-format directory section for the following section
 +
* Block 25-xx - stand-alone programs, including tape->disk copy programs
 +
* Block 98 on tape - 'hpuboot' (RP04 disk bootstrap)
 +
* Block 99 on tape - 'rpuboot' (RP03 disk bootstrap)
 +
* Block 100 on tape - 'rkuboot' (RK05 disk bootstrap)
  
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.
+
After that, blocks 101-4100 are an image of 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 4101-8100 are an image of an RK05 pack which contains source for all the commands; and blocks 8101-12100 are an RK05 pack image which contains all the documentation.
  
* Block 0 on tape - mboot (tm tape booter)
+
The copying programs (6 of them, one for each possible tape/disk combination) are stored in the block "25-xx" area, along with a number of other miscellaneous small stand-alone programs.
* 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.
+
===Tp-format directory===
  
Blocks 100-4099 are an image an RK05 pack containing a UNIX root partition, which contains all the commands, and the source for the operating system; 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.
+
The tp-format directory situation is slightly confused; the spec for tp-format tapes says that the directory occupies blocks 1-24 - but the installation instructions clearly indicate that block 1 contains a TM02 tape bootstrap; inspection of a V6 installation tape confirms that. The tape directory is indeed only 23 blocks long - the 24th block (block 25 on the tape) contains a program.
 +
 
 +
Even more confusing, the first-stage tape bootstrap actually reads block 1 when it reads the tape directory. Presumably, the 'directory entries' in that first block, with file-names which are random binary (from the tape bootstrap) don't match any actual file names, and are therefore ignored.
  
 
==Programs==
 
==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.  
+
The first stage tape bootstrap is "tpboot.s"; this is assembled with either "tm.s" (the TM11 [[device driver]]) or "ht.s" (the TM02 driver) to produce the first-stage bootstrap that goes in blocks 0 and 1 of the tape. It takes as input a file-name, for installing UNIX, normally 'xxyy' as above, entered at the console. It then reads the tp-format directory off the tape, and looks for that file-name in it, and if found, loads and starts it.
  
"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.
+
"mcopy.s" is the tape copier program, assembled with either "tm.s" or "ht.s", and one of "rk.s" (RK11 driver), "rp.s" (RP11 driver) and "hp.s" (RP04 driver), 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.
 
"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 (or contain the console routines); it is set up by tpboot.s, which will have run previously (to load the appropriate disk-controller-specific version of mcopy off the tape).
 +
 +
==See also==
 +
 +
* [[UNIX V6 internals]]
 +
* [[UNIX V6 kernel memory layout]]
 +
** [[UNIX V6 dump analysis]]
 +
* [[Setting up UNIX Sixth Edition]]
 +
** [[Upgrading UNIX Sixth Edition]]
 +
** [[Running UNIX V6 on an -11/23]]
 +
* [[Installing UNIX v6 (PDP-11) on SIMH]]
 +
** [[Running UNIX v6 in SIMH]]
 +
* [[Installing UNIX Sixth Edition on Ersatz-11]]
 +
 +
==External links==
 +
 +
* [https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/source/mdec mdec] - source for all the modules described above
 +
** [https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/source/mdec/run run] - shell file to create them all
 +
 +
[[Category: UNIX]]

Latest revision as of 19:58, 28 June 2024

There is a Setting up UNIX - Sixth Edition document, but it is mostly a checklist of what to do to install UNIX Sixth Edition on a PDP-11 (one of the PDP-11 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; or 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, or 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, a tape to disk copier (named 'xxyy', where 'xx' is "tm" or "ht", and 'yy' is "rk", "rp" or "hp"; as appropriate to the machine's hardware configuration).

That program is used to copy 3 complete RK pack file system images from the tape, to disk pack(s); it is also used to install an appropriate disk bootstrap in block 0 of the root disk drive. Once that has all been done, it is possible to boot UNIX from disk.

It is not possible to boot V6 Unix directly from a V6 distribution tape (as one can with V7); all one can do is copy the disk images from the tape to the disk, and then boot from the disk. Also, since the file systems are provided as images of complete functional UNIX file systems, it is not possible to install them properly on different disks; to put the contents on different sized disks, one has to perform additional steps once the system is up and running.

Installation tape contents

The V6 distribution tape contains a large number of 512-byte records; the first 101 512-byte tape blocks contain a number of small programs, including tape and disk bootstraps, and programs to copy the tape contents to disk, and a directory which indicates what files are there.

  • Block 0 on tape - 'mboot' (TM11 tape bootstrap)
  • Block 1 on tape - 'hboot' (TM02 tape bootstrap)
  • Block 2-24 - a tp-format directory section for the following section
  • Block 25-xx - stand-alone programs, including tape->disk copy programs
  • Block 98 on tape - 'hpuboot' (RP04 disk bootstrap)
  • Block 99 on tape - 'rpuboot' (RP03 disk bootstrap)
  • Block 100 on tape - 'rkuboot' (RK05 disk bootstrap)

After that, blocks 101-4100 are an image of 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 4101-8100 are an image of an RK05 pack which contains source for all the commands; and blocks 8101-12100 are an RK05 pack image which contains all the documentation.

The copying programs (6 of them, one for each possible tape/disk combination) are stored in the block "25-xx" area, along with a number of other miscellaneous small stand-alone programs.

Tp-format directory

The tp-format directory situation is slightly confused; the spec for tp-format tapes says that the directory occupies blocks 1-24 - but the installation instructions clearly indicate that block 1 contains a TM02 tape bootstrap; inspection of a V6 installation tape confirms that. The tape directory is indeed only 23 blocks long - the 24th block (block 25 on the tape) contains a program.

Even more confusing, the first-stage tape bootstrap actually reads block 1 when it reads the tape directory. Presumably, the 'directory entries' in that first block, with file-names which are random binary (from the tape bootstrap) don't match any actual file names, and are therefore ignored.

Programs

The first stage tape bootstrap is "tpboot.s"; this is assembled with either "tm.s" (the TM11 device driver) or "ht.s" (the TM02 driver) to produce the first-stage bootstrap that goes in blocks 0 and 1 of the tape. It takes as input a file-name, for installing UNIX, normally 'xxyy' as above, entered at the console. It then reads the tp-format directory off the tape, and looks for that file-name in it, and if found, loads and starts it.

"mcopy.s" is the tape copier program, assembled with either "tm.s" or "ht.s", and one of "rk.s" (RK11 driver), "rp.s" (RP11 driver) and "hp.s" (RP04 driver), 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 (or contain the console routines); it is set up by tpboot.s, which will have run previously (to load the appropriate disk-controller-specific version of mcopy off the tape).

See also

External links

  • mdec - source for all the modules described above
    • run - shell file to create them all