Subject: Re: 32 bit dev_t, Revision 3
To: Bill Studenmund <wrstuden@loki.stanford.edu>
From: Chris G. Demetriou <cgd@pa.dec.com>
List: tech-kern
Date: 01/13/1998 09:00:26
> The concern I have about this is idea, which I also have about ${MACHINE_ARCH}
> tables, is that we could end up with a lot of unused entries on m68k
> ports.

Once you get converted to using pointers in the device switch, the
cost of the unused entries isn't so large.

If we are going to try to get a single device table (or a single table
per ${MACHINE_ARCH}), it _has_ to happen at the time that device
renumbering is done.


> Making all of that fit in one table seems gross to me. If we didn't use
> the driver-registers-itself-in-table trick (the table being pointers to
> the b/cdevsw entries), we'd end up with a lot of #if NWHATEVER > 0
> {something} #else {null entry} #endif blocks, which I find hard to read.
> Especially if we end up with nearly 100 of them on m68k.

I think that personally, i'd rather have all of those in one table
than to have to go through all of the ports' tables each time, when
adding a new machine-independent device to the kernel.


> The one strong argument I've heard in favor of unifying these tables,
> at least at the ${MACHINE_ARCH} level, is for an install CD. But I think
> we can get the same abilities another way. Isn't a mini-root environment
> just a fat kernel to the boot loader? If not, can't it become one?
> 
> I mean we have to have a machine-specific kernel. If we shove a mini-root
> in there, then we can have machine-specific device nodes & whatever
> M.D. parts are needed, all in one package. Then each ${MACHINE_ARCH} can
> still share lots of the user-land binaries.

Not just an install CD.  Also, for example NFS diskless booting, of
multiple ${MACHINE}s belonging to a common ${MACHINE_ARCH}, from a
single root partition.  (Please do not waste my time by saying that
each machine should have always its own root partition.  That's silly.
We've got N machines here running off of a single root partition, and
it's the only way to sanely maintain large numbers of diskless
clients.)

It's also worth noting that I think being able to just boot and run
off of an install CD -- i.e. use it as a real system but with some
things disabled (e.g. logging) before you decide to install -- would
be a very good thing, and if you want to do that you don't want to be
paying the extra space overhead or hassle (getting root and /usr
locations right, etc.) that a miniroot kernel would cause.


Really, what would be cool as far as I'm concerned is a single CD-ROM
that you could take up to many m68k machines, boot from (if that's
possible), automatically start X, let people play around with the
system, and then give them the option to do the install.  Doing that
is made harder by forcing people to use miniroot kernels to do it.



chris