Jeffrey Hutzelman writes:
> On Thu, 20 Mar 2008, James Carlson wrote:
> > If anyone involved with OpenSolaris (or Sun) were to try that, it
> > wouldn't be by way of stealth, as you seem to be suggesting.  It would
> > be done openly, first with an ARC case that describes exactly how
> > things transition in a compatible way, and then public notice to _all_
> > customers at least a year in advance of the change.
> 
> I'd like to believe that, but can you point to documentation which
> classifies this as a Committed interface?  I was unable to find such on a
> Solaris 9 system, and the init.d(4) man page on Solaris 10 contains this:

Solaris is old.  Very old.  Many of the things in it were designed
long before there was any architectural review process at Sun, and
well before we ever had any notions of interface stability.

When those processes were introduced, we could have taken a two or
three year break and carefully documented every single interface, and
padded out all of the man pages to conform.  We didn't do that.
Instead, we chose to apply judgement: while new interfaces have their
stated stability, old ones require some inspection when a stability is
needed (either as part of a review or as part of some odd side
discussion on a mailing list ;-}).  If they're part of any standard
environment or documented use, they're Committed.  If they're just
some human-mediated debug interface, they're probably Volatile.  If
they're something else, then apply some experience to it.

The problem boils down to resolving the reasonable expectations of
those who use those interfaces, and making sure that we don't violate
those.

What that means is that the old System V interfaces, particularly the
ones that are documented and in use by software, can't really go
anywhere.

>      The service management facility (see  smf(5))  is  the  pre-
>      ferred  mechanism  for  service  initiation and termination.
>      The init.d and rc?.d directories are obsolete, and are  pro-
>      vided for compatibility purposes only. Applications launched
>      from these directories by svc.startd(1M) are incomplete ser-
>      vices, and will not be restarted on failure.

All of which is correct.  "Obsolete" merely means that there are now
better choices (according to Sun's engineers ;-}), and that we
encourage everyone to migrate when possible rather than using those
old interfaces.

That says _nothing_ about whether they'll actually be removed at any
point in time.

Furthermore, actual removal is separate from marking something as
"obsolete."  It takes a separate review and, as I noted before,
generally requires notification of customers before it happens.
Within the ARC, we look at these cases carefully.  If the thing being
removed is never used or represents some sort of security hazard,
removal is usually simple.  If it's sometimes used but migration is
possible, then standard notification of a year is needed.  If it's
common (as this is) and simple migration is implausible (as it is
here), removal might not be possible at all -- ever.

(The above assumes a Minor release.  Major releases are different,
though they're very rare.  The last one was Solaris 2.0 and the switch
from BSD to System V.)

I'm just one ARC member, so I can't speak for the others, but I think
it's just plainly obvious that if someone approached us asking to
remove /etc/rc*.d/ from Solaris, we'd simply say "no."  It wouldn't
require a lot of discussion, I'd hope, and no amount of pointing at
man pages and hand-wringing over the possible changes in the future
would alter that.

The interface taxonomy and other ARC documents have more information
on the processes involved here, if anyone's interested.

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to