Warner -- thanks...
On Sun, Dec 31, 2023 at 5:07 PM Warner Losh <imp(a)bsdimp.com> wrote:
Except I can't find any of this in our V7m or ultrix-11 that we have. This
is 2.1. And there all the device drivers still have the fixed tables:
....
and the ultrix-11 3.1 sources we have are similar, but move all of the
above into /usr/sys/conf/dksizes.c.
I remember dksizes.c -- I'll take your word for it being 3.X, not 2.X;
I'm
pretty sure that was the start of the work in Merrimack by Fred Cantor to
make things more independent. Shannon would have been aware of all of it,
and before he went to Sun, he and Jean were working with the folks at CSRG
(Sam, in particular), moving some of the DEC I/O support into BSD. Bill
Munson convinced his management that it was worth it for DEC to at least
make sure the DEC peripherals were being well handled and in mostly the
same manner. IIRC Jean spent 6-9 months embedded in the CSRG working on
much of that.
The early disktab stuff encoded the default tables
into a text file to
make it easier to cope with all the different types of disks, but didn't
affect what we know as bsdlabels until after 4.3BSD.
Right.
The naming convention was there, but the 'write
bits to the disk to
describe partitioning' I couldn't find at all in ultrix. I think you may be
confusing that stuff (which was a very clever way to cope with all these
disks that have different partitioning in a increasingly generic way) with
disk labeling which I think.
Quite possible.
The key is that partitioning the disk to allow its use for different things
and disk geometry support get all mixed together in the different schemes.
As we discussed, it often happens in multiple places (since the ROMs, like
the PC's BIOS, need at least some of the info at boot), and the loaded OS
(particularly ones with multiple OSs on them) might want to do something
completely different. This is why Grant's question is a little hard to
answer directly - as I said, it is a long, slow trip.
UNIX Partitioning, like what Dennis did, came first. If you look at PDP-11
and later Vaxen, the "disk support" for booting is pretty crude and built
into the ROM -- *i.e*., boot RP0 or RK0 -- the "disk geometry" is hidden in
the Boot ROM. But when so many disks start to show up using the same
controllers, the ROM needs to be smarter. So, some way to encode geometry
is needed. But Partitioning for the OS is still something that is handy
and so often got put into the same support (such as the PC's BIOS tables -
which were a good idea, poorly executed).
Sun was first to market with.
To be fair, Masscomp's "disk geometry" code that Paul Cantrell
wrote
pre-dated Sun by at least a year or more. I did not include it in my
history, as it is private to their boot ROM. Nice scheme, actually - but
proprietary, and I don't think any of the ideas went anywhere else - other
than later Sun ROMs supported a similar functionality, and they would have
at least seen them at customers and known about it, particularly since Sun
picked up the Xylogic disk and tape controllers that they developed for
Masscomp originally (Paul spent many hours at Xylogics helping with their
Microcode). The point is, by that time, the proliferation of different
disk manufacturers -- something to make the boot ROMs and OS's more
independent was forced on the different systems providers if they were
going to have any chance of being able to be flexible in the market/field.
Maybe you can help me find it?
I'll see what I can dig up.
I did find the SunOS 0.x images (UniSoft V7 port) didn't appear have a
disk partition, but 1.0 (post 4BSD pre 4.1BSD) and later did. That puts it
at 1982. Although based off BSD, the disk label stuff wasn't in BSD for
another 5 years when the BSD folks started the Tahoe port.
Right, this is all of the MK0, CSRG, and Sun connection via Fred, Bill, and
Sam. At a minimum, they knew what the other was doing/had done, and some
of it definitely migrated.
WRT to OpenFW, my memory is that Larry points out that Sun was the primary
driver. But a lot of the Motorola club got interested in using it, too,
during the "JAWS" timeframe. I am pretty sure that there were versions for
68K, 88K, and PPC, as well as the SPARC version from Sun. Somewhere I
have early source distribution.
ᐧ
ᐧ