On Mon, Apr 23, 2018 at 5:14 PM, Dan Mick <danmick(a)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(a)minnie.tuhs.org <mailto:tuhs@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
ᐧ
ᐧ