Subject: Re: rc.d (some debates never die :-) (Re: NetBSD 1.5 on uVAX
To: None <port-vax@netbsd.org>
From: Chuck McManis <cmcmanis@mcmanis.com>
List: port-vax
Date: 12/27/2000 21:07:30
At 10:28 PM 12/27/00 -0600, Jay Maynard wrote:
>This is a simple design tradeoff, of the kind computer systems designers
>make daily.

Exactly.

>In general, if you can trade something for code that's executed
>once, it's a good trade.

This is one way of analyzing the trade-off.

>  How often do you boot a system? Yes, that
>varies...but what are we trying to build here, a playtoy, or a
>production-quality OS that you can depend on to be there when others are
>crashing around our ears?

Well to give you a "real life" example rather than a contrived one, I was 
the chief architect at a company called FreeGate. We built (and now Tut 
builds) an all in one Internet appliance using FreeBSD as the core OS 
(choice made before NetBSD was "real"). As the router/firewall, reboot time 
was a priority for us because during a reboot our customer wouldn't have 
access to the Internet. We spent a good three months tuning the system to 
boot in less than a minute. Here the cost of a slow reboot speed 
(regardless of how often it was done) was a problem. The generality did not 
apply.

>  There's a reason the one system I run that others
>depend on day-in and day-out is a NetBSD box. I'll put up with the BSDisms
>(my fingers are hardwired to do "ps -ef", and it drives me nuts) to get a
>real, live, production-quality system. Anything that improves system
>reliability and serviceability is a Good THing in my book. It should be, in
>the judgment of the designers, as well - or else we're just building a toy.

Clearly I disagree that one should imply a system that focuses on reboot 
speed should somehow be less robust or more toy like than one that does 
not. The issue as you correctly ascertain is what metric did the "system 
designers" use to make the tradeoff. One of NetBSD's tenets is that it runs 
on a "wide variety of platforms" and this is true, but making the rc.d/ 
choice has artificially cut off some platforms that it might otherwise run 
on so it directly contravenes that stated design goal.

If you want to make the argument that robustness is a stronger design 
principle than wide scale applicability then the logical extension of that 
argument is to focus exclusively on exactly one platform with one set of 
hardware. One can clearly maximize robustness in that way.

I've been designing systems for over 20 years now and the longer I do it 
the more I realize how much there is to learn. And as I mentioned earlier 
the design decision to go with rc.d was made and it limited NetBSD's 
applicability, is the choice worth it? I don't know, perhaps it is, would 
someone who is on the core developer list care to comment? Does it matter? 
Probably not.

--Chuck