On Thu, Jul 07, 2005 at 10:17:56PM -0500, Tao Chen wrote:

> I vote for changing the default shell to a better one.

Ah, but then the question is, which one.  You might choose ksh over bash
for various reasons, others might prefer tcsh, and some of us know that zsh
is the One True Shell.  If nothing else, the bourne shell is one we can all
agree isn't something we want to use for very long.  ;-)

At any rate, you or anyone else is free to design your own distribution of
OpenSolaris that has whatever you like lurking behind /bin/sh, or to change
all the places in the codebase that essentially make /bin/sh the default
shell.  You may need to deal with some incompatibilities when it comes to
scripts, but you can fix those up as necessary, either in the shell or in
the scripts.  It's your distribution, do as you please.

Now, if you want the change to be made in Sun Solaris, there's a higher
bar.  Like Shawn and Rich have said, we care very deeply about
incompatibilities introduced by any change to the system, and we have a
fairly complex risk management (not risk avoidance, mind) process built up
around this.  I don't know how ready we are for external contributors to
participate in the ARCs, so keep in mind that for the time being, the
following is somewhat hypothetical.

You'd need to propose the exact nature of the change:

  - are you changing the actualy interpreter that /bin/sh is?
  - are you modifying /bin/sh to include a handful of useful features?
  - are you changing root's default shell?
  - are you changing everyone's default shell?
  - something else?

You'd need to demonstrate that the changes violate no standards:

  - what standards govern /bin/sh on a Solaris system?
  - do those standards have testsuites?

You'd need to demonstrate that the changes don't break anything:

  - full system test
  - test suites
  - performance regressions

And you'd need to be prepared for Sun not to accept the risk of the change,
regardless of the technical arguments.  /bin/sh is such a core part of the
system, and changing it is such a sweeping change, that it might just be
considered too risky, period.  Then again, Sun accepted -- in fact was
quite excited by -- the changes that SMF introduced.  So sweeping changes
are possible.

The rigor to which you'd be subjected also depends on the nature of the
change.  I think that changing what /bin/sh is would likely be the hardest
sell (though it would be interesting to run a system with bash as /bin/sh
through our test suites).  You'd much more likely get traction on one of
the less invasive changes.

For instance, you could suggest adding commandline editing to the shell.
I'm not sure what standards govern /bin/sh, but not POSIX (that's
/usr/xpg4/bin/sh, as someone pointed out).  Maybe SVID?  Don, are you here?
Anyway I don't think adding features strictly for interactive use is likely
to break any compatibilities.  Again, consulting a standards guru would be
my first course of action here.  But any change that isn't going to touch
the command interpreter is going to have less unmeasurable risk.

Changing the default shell -- either globally, or for root, or for everyone
but root -- would probably be simpler (though the arguments that raged over
changing root's home directory might lead you to believe otherwise).
However, there are such good workarounds -- custom jumpstart scripts, in
particular -- that it still might be a hard sell.  I think you might find
from the hoarier unix crowd that the general feeling is, if you know enough
to use a shell, you know enough to change it (or find out how), and if you
don't know enough to change it, you're probably living in a GUI world.
Now, I know that's a generalization, but hey -- I'm pretty sure that chsh
was on my first unix cheatsheet.  And I do know plenty of people who
continue using /bin/sh and just don't know any better.

At any rate, the way to go about it is write up the proposal -- what you
plan to do, what risks are involved, what the benefits are, and so forth.
Sun would have to do some business-side evaluation, but it's a valid
project, even if it gets rejected in the end.

My own personal feeling on it, FWIW, is that it's a problem to be solved at
installation (something you should already be able to do with jumpstart, as
I mentioned before).  But even for an interactive install, say that we had
an installer that could be told (or recognize) that you were installing a
machine for your own personal use.  It could then be a bit more verbose in
the questions it asks, allowing you to customize the system a bit more,
maybe choosing some more user-friendly defaults than for a machine that's
going to be a server sitting in a dark hole somewhere.  Of course, any such
project would have to wait until the Install side of the house gets
open-sourced, or you write your own from scratch.  And it's just a thought
on how to solve the original problem.

Anyway, I hope that provides some real meat to chew on -- if you actually
want to make this change, be prepared for very vigorous debate and possibly
rejection, but I wouldn't consider it impossible.

Danek
_______________________________________________
opensolaris-discuss mailing list
opensolaris-discuss@opensolaris.org

Reply via email to