Re: StartupItems
Re: StartupItems
- Subject: Re: StartupItems
- From: "Jordan K. Hubbard" <email@hidden>
- Date: Tue, 23 May 2006 01:31:20 -1000
On May 22, 2006, at 11:18 PM, Peter Seebach wrote:
I don't know about that. Modern servers still have to manage some
level
of consistency, or *services stop working*. And until we have the
time,
budget, and inclination to rewrite everything from named to apache,
servers
are still going to depend on some amount of stability.
I'm not sure what this is an argument in favor of, to be honest. It
almost sounds like you're saying something to the effect of:
"Servers break if you change them, thus forcing you not to change
them. Ergo, servers don't have a problem with change!"
Even if that sort of logic was a comfort to you, our problem spaces
encompasses the desktop as well as the server (and, if you look at
the demographics, desktops are in the overwhelming majority) so it's
ultimately not very comforting either way.
I disagree.
I think we have a lot of software which is doing just fine, with
people
consistently able to make 3-4 9's of uptime, and some of the more
stable
systems doing 5+.
"Doing just fine" is such a relative judgement that I think we're
going to simply have to agree to disagree here. There's no question
that there's a lot of dusty deck software out there and, if that
whole Y2K thing hadn't happened, one might have even been able to
extend the "just fine the way it is" umbrella to cover several
million lines of COBOL code too. For that matter, there are still
PDP-8 systems doing process control in various woolen mills around
the U.S. No need to change them out, they're doing a fine job with
more 9's worth of uptime than you've probably ever seen. The term
"borrowed time" comes to mind, however, for both the PDP-8s and much
of that software you're talking about. Ultimately, some change in
the market or technology is going to push that stuff into obsolescence.
And yet, Linux and BSD systems are able to do it just by starting
services
in a specified order, and have been doing so for a decade or more.
I think we've already covered the fact that Linux and BSD systems
aren't attempting to do all the things that MacOSX is trying to do.
If all you want to do is run a web server, you can do that on a CHIP
these days, you don't even need a dedicated UNIX server. If you
want a small handful of services, fine, build a BSD or Linux box -
heck, since it's single purpose, just start your services out of /etc/
rc - why even bother with startup item abstractions? Oh, you want
flexibility too? Now you're on the slope that ultimately leads to
launchd (I know you'll disagree there, but we can agree to disagree
here too).
Omitting a feature and blaming the people who provide it for being
"slow"
is pure propaganda.
I think we disagree on it being a feature, otherwise it wouldn't be
slated for deprecation.
Which, it seems to me, makes the cost of doing dependency checking and
ordering fairly low. So why not do it?
Because it's fundamentally flawed, for many of the reasons John S.
spelled out earlier. Some person who thinks they understand the
system essentially hard-codes a dependency chain of A, B, C and D.
Then, later, C is upgraded to no longer even need D (this kind of
thing happens ALL the time) but hey, the people who maintain C don't
have anything to do with the "startup items" for system X, so D is
now stupidly and unnecessarily started but hey, it still works so
nobody notices they're paying a penalty for no reason. Then, later,
B develops a dependency on C and, in some cases, F. F, however,
didn't even exist when the startup chain was coded up, so now you
have B sometimes mysteriously failing to work for reasons that escape
the current crop of sysadmins (did I mention that the original guy
has long since fled to Bogota?). That's the SIMPLE example, with
only 5 items. Multiply it out and you have a problem of
quadratically increasing complexity.
With launchd, on the other hand, everybody just checks in and says "I
provide foo" and anyone, anywhere, who asks for foo gets it.
Simple. They can ask for it always, they can ask for it sometimes,
they can decide to stop asking for it altogether in a future release
and things Just Work as long as everyone plays by the rules (and this
is not a constraint imposed uniquely by launchd - all formal systems
have rules).
I don't see why this is so difficult to understand.
- Jordan
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden