[TUHS] /dev/drum

Clem Cole clemc at ccc.com
Tue Apr 24 07:27:29 AEST 2018


On Mon, Apr 23, 2018 at 5:14 PM, Dan Mick <danmick at gmail.com> wrote:

> On 04/23/2018 02:06 PM, Clem Cole wrote:
> >
> >
> > On Mon, Apr 23, 2018 at 4:47 PM, Grant Taylor via TUHS
> > <tuhs at minnie.tuhs.org <mailto:tuhs at minnie.tuhs.org>> wrote:
> >
> >     On 04/23/2018 11:51 AM, Clem Cole wrote:
> >
> >         By the time of 4.X, the RP06 was 'partitioned' into 'rings'
> >         (some overlapping).  The 'a' partition was root, the 'b' was
> >         swap and one fo the others was the rest.  Later the 'c' was a
> >         short form for copying the entire disk.
> >
> >
> >     I had always wondered where Solaris (SunOS) got it's use of the
> >     different slices, including the slice that was the entire disk from.
> >
> >     Now I'm guessing Solaris got it from SunOS which got it from 4.x BSD
> >
> > ​It was not BSD - it was research.  It may have been in 6th, but it was
> > definitely in 7th.  Cut/pasted from the V7 PDP-11 rp(4) man page:
> >
> >     *NAME*
> >
> >         rp − RP-11/RP03 moving-head disk
> >
> >     *DESCRIPTION*
> >
> >         The files rp0 ... rp7 refer to sections of RP disk drive 0. The
> >         files rp8 ... rp15 refer to drive 1 etc. This
> >
> >         allows a large disk to be broken up into more manageable pieces.
> >
> >         The origin and size of the pseudo-disks on each drive are as
> >         follows:
> >
> >             disk start length
> >
> >             0 0 81000
> >
> >             1 0 5000
> >
> >             2 5000 2000
> >
> >             3 7000 74000
> >
> >             4-7 unassigned
> >
> >         Thus rp0 covers the whole drive, while rp1, rp2, rp3 can serve
> >         usefully as a root, swap, and mounted user
> >
> >         file system respectively.
> >
> >         The rp files access the disk via the system’s normal buffering
> >         mechanism and may be read and written
> >
> >         without regard to physical disk records. There is also a ‘raw’
> >         interface which provides for direct transmission
> >
> >         between the disk and the user’s read or write buffer. A single
> >         read or write call results in exactly one
> >
> >         I/O operation and therefore raw I/O is considerably more
> >         efficient when many words are transmitted. The
> >
> >         names of the raw RP files begin with rrp and end with a number
> >         which selects the same disk section as the
> >
> >         corresponding rp file.
> >
> >         In raw I/O the buffer must begin on a word boundary.​
> >
> > ᐧ
>
> But...that has numbers, not letters, and the third partition is not the
> whole drive, the first one is....?
>

Yup -- disk were pretty expensive in those days ($20-30K for a <100M drive)
so often people did not have more than one.  So they started with rp1, rp2
etc..
As disks dropped a little cheaper and having more than one RP06 became
possible (RP06 aka IBM 3330 - project Winchester --  was a huge 200M drive
- we had 3 on the Teklabs machine and that was considered very, very
generous), then letters became the convention used in /dev/.  i.e.
/dev/{,r}rp0{a,b,c,d..} for each of the minor numbers.

To be honest, I really don't remember - but I know we used letters for the
different partitions on the 11/70 before BSD showed up.

The reason for the partition originally was (and it must have been 6th
edition when I first saw it), DEC finally made a disk large enough that
number of blocks overflowed a 16 bit integer.   So splitting the disk into
smaller partitions allowed the original seek(2) to work without overflow.
V7 introduced lseek(2) when the offset was a long.

Clem

​

ᐧ
ᐧ
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180423/faf9548e/attachment.html>


More information about the TUHS mailing list