Disk sections (I don't think anyone in Research called them
partitions--certainly the Research manuals didn't) were
originally defined in the device driver, not by data on the
disk. In those days, system management included recompiling
stuff, including the OS kernel, and it was not unusual for
sites to edit hp.c or whatnot to adjust things to local
preference.
There was nothing magic about the mapping between device
names and minor device numbers either; the system came with
certain conventions on the original tape, but it was not
at all uncommon to change them.
By the time I arrived at the first Unix site I ever helped
run, in a physics group at Caltech, we already used a different
naming convention: a BSD-like ddNs, where dd was a driver
name, N the physical drive unit number, s a section letter.
I don't know whether that was borrowed from BSD (it must have
started during the 3BSD era, since I started there in mid-1980
and 4BSD appears to have been released late in that year).
Looking at my archival copy of that much-locally-hacked
source tree, I see that we later moved the definitions of
all the disk-section tables to a single file compiled at
system-configuration time (we used a USG-like scheme that
compiled most of the system into libraries, rather than
compiling every file separately for each target system a
la V7 and BSD). That simplified handling our somewhat-
complicated disk topology: all but system disks were connected
through System Industries 9400 disk controllers, which were
a neat design (each controller could interface to as many as
four hosts and four disks) but in practice were not always
reliable. On one hand, we arranged for one disk to be used
in parts by our main time-sharing VAX and a subsidiary PDP-11/45,
making the 11/45 cheaper to keep around; on the other, the
main VAX had two paths to each of its disks, through different
SI controllers, so when an SI controller conked out we could
run without it until the service guys fixed it. (Each disk
was dual-ported, as was common in the SMD world, hence
connected to two controllers.)
Reliability took rather more work in those days.
A different data point: by the time I moved from California
to New Jersey and joined 1127, Research was also using a
different naming scheme for disk sections. By then the
internal naming convention was e.g. ra17 for physical unit
1, section 7; by further convention 7 (the highest-numbered
section). At some point a little later we added an ioctl
to set the starting block and size of a particular section
on a particular drive, but we never went to having the OS
itself try to find a label and trust its contents (something
that still makes the 1980s part of me feel a little creepy,
though 21st century me has come to terms with it).
Norman Wilson
Certified old fart
Toronto ON
Show replies by thread