Subject: Re: Another changer, another changer problem
To: John Nemeth <jnemeth@cue.bc.ca>
From: None <seebs@plethora.net>
List: current-users
Date: 10/10/1998 19:00:16
In message <199810102159.OAA27223@cue.bc.ca>, John Nemeth writes:
>     If you wire down the devices then they won't move.  Not wiring
>them down is mainly a convenience for bootstrapping/installing
>systems.

Yes.  But I want to be able to refer either to 'the first drive on
the system' or to 'the Nth drive on the Mth controller'.  I don't
want to wire it down, I want the wiring to be an intrinsic feature.

Basically, I want to be able to express myself in terms of fundementals
that I know are already present in the device tree.

>     If you wire down the devices completely, then even adding a
>controller won't cause them to move.  This is something you can't do
>with the SysV scheme that everybody is talking about.  The point is
>that the BSD scheme is far more versatile.

But far more work.  What's wrong with a scheme which allows us to have
all that wiring down, but *no device entries for devices which don't exist*?
I think it'd be great.

Why is /dev/fd a good feature?  Because it's nice to have a filesystem that
shows the current set of options.

>     runlevels are another beef.  Every machine I have ever seen or
>used was either in single user mode or full multi-user mode.  More
>then those two "runlevels" were never used.  Can you give me a
>non-contrived example where runlevels are truely useful, instead of
>just being an annoyance?

I often want a machine "partially up".  For instance, I might want
a machine in the mode where normal services are in place, but "network
server" stuff is temporarily off.

Linux systems sometimes use runlevel 5 for "start xdm", which I like.

The nice thing is the ability to say "runlevel 4 is just like runlevel 3
except that RADIUS is up in runlevel 4".  Then, if I want to do something
for which I'd like to shut off RADIUS, I 'init 3' and it DTRT.

>     Nothing, if they are truely good ideas.  However, it seems that
>the vast majority don't want the SysV features that the you and a
>handful of others crave.  They are very things that we despise about
>SysV.

I can see how the runlevels are a Bad Thing for people who don't want
them.  (Or perhaps we want 'rc.conf' to include a 'runlevels=NO' by
default?)  I don't see the problem with the devices.

>     Can this be done without excessively bloating the kernel?  So
>far, I haven't seen any suggestions of how to do this without making a
>major mess out of things.  Sometimes, too much choice is a bad thing,
>and you have to make a fundamental decision of which way to go at the
>outset.

I don't see how there'd be much bloat; we already have a fair amount of
the code in place, and indeed, the kernel might have significantly
smaller static data structures if it weren't building all these huge
tables for devices that might be around next time we boot.

>     If you switch to SysV device naming and init, you will be well on
>the way to making NetBSD look like SysV from a system administration
>viewpoint.

"switch to" is not the same as "offer as an alternative'.

>     See my comment above.  There's a big difference between adding an
>extra program to userland and bloating the kernel.

Well, why do we have NFS then?  I'm sure NFS is an order of magnitude more
kernel code than a much more interesting configuration set.  :)

>} It may come as a shock, but I base my enthusiasm for it on real world
>} experience.

>     And, I base my lack of enthusiam on *my* real world experience.

Then we have different experiences.  No problem!  The system should ideally
cater to both of us.

>     If you wire the device down, it won't move.  Of course, in the
>case of a CD-ROM drive, of which most systems only have one, it won't
>move anyways.

I've been bitten repeatedly by having either a CD-writer and a CD-ROM drive,
or (on BSD/OS) by having an LS-120 and a CD.  :)

The main point is, *I WANT WIRING DOWN TO BE AN IMPLICIT FEATURE*.  Yes,
I could have a shell script start by doing mknod's for every descriptor
it wanted to have open.  I don't want to.  I want '/dev/fd/n' to, if it
exists, refer to file descriptor n.  Otherwise, I don't want it to exist
and create clutter.

99% of what bugged me on SVR4 is that 'ls /dev/dsk' took forever on a system
with only a few disks and partitions.

-s