Why Indiana uses bash

One the indiana-discuss and caiman-discuss lists a poster wrote:

> /bin/sh -c 'print ${.sh.version}'
> /bin/sh: bad substitution
> I hoped Indiana would improve things and deliver the ksh 93 as
> /bin/sh, but no, it is just the same bourne shell as in Solaris. No
> improvement. Indiana doesn't improve things for developers.
> The choice for /bin/bash as user shell for 'Jack' and 'root' is a SHAME.

As I think this is representative of a broader set of issues in OpenSolaris, I decided to post this as a blog entry rather than just email to the lists.  Let me explain how this "choice" came to be...

When the OpenSolaris project opened a couple of years ago, Moinak Ghosh and friends built a distro called BeleniX, a very nice piece of work which I respect even more after what we've gone through in building this preview.  One of the things they developed was the tools for building a live CD, and in that kit they'd made a number of choices, which included that bash was the shell for root.  Sensible, since ksh93 wasn't ported at that time.

A bit later, I started collaborating with Moinak on bringing the live CD technology to the Solaris base, in the OpenSolaris Live Media project.  We worked in the background on it for a year or so, tweaking it and updating it for later Nevada builds as I worked on the political end of getting Solaris management to buy into this as our future approach.  I was doing this project in my spare time, as was Moinak, and we didn't really have any other particularly active contributors other than Anil Gulecha (who did the original USB work) and a couple of patches I got from others.  For our purposes, bash was fine, it worked, and I didn't need to bother changing it, so I didn't.

When Ian came along and got Sun management to buy into doing Indiana with a preview in October and including the new installer, live CD, new packaging system, we were already working in that direction, but by the time we got staffing freed up from other things, we had about 10 weeks to get to this preview release.  You don't do that by making lots of random changes and creating lots of new code (IPS is an exception to the latter) so we used what we had, cobbling things together, and that meant we borrowed from Live Media to create the Distribution Constructor, which used bash.  And in the last 4 weeks of 14 hour days, this wasn't a priority to change, so it didn't.

The moral of the story above is that if you get involved and contribute code to projects, you \*will\* make decisions in that code which will show up in distributions; Live Media would have welcomed contributions along the way.  We need coders, not managers, as Sun pays plenty enough of them already.  If you're going to pass final judgment on this distro based on this preview, then that's unfortunate; we've done some good work, I think, but we've also cut a \*lot\* of corners to get to where we are, by focusing on the things we knew we had to do and leaving the other things for later.  That won't be quite so necessary going along, but my years of delivering projects tells me we're going to postpone something from every milestone, and make someone unhappy every single time, so I'm disappointed by the tone of some of these comments, but not surprised.  The code for much of this is out there now, between the Distribution Constructor and IPS repositories, and now is the time to start offering patches.  We'll welcome them.

You and the others did a really good work in that short timeframe. So thanks for your time you investeted in this project. I didn't expect to see a perfectly working distro in a preview realese. I was just wondering why there was no comment about chosing bash in the indiana forum. So now it is clear and you are absolutely right in setting prioritys to get ready in time.
I'm sorry that there are only few coders willing to spend time and contribute. But you also have to notice that there are some people who are interested that project and can't contribute code because they are no programmers (like me).

Posted by Otmanix on November 01, 2007 at 06:01 AM EDT #

"The moral of the story above is that if you get involved and contribute code to projects, you \*will\* make decisions in that code which will show up in distributions; Live Media would have welcomed contributions along the way"

I think you are in Sun longer time than I. So you should know why we have things like ARCs. Yes, you need to make decisions. But based on consensus. Not like your decisions made at time nobody was able to stop it and with significant impact on the future. That's bad.

"now is the time to start offering patches. We'll welcome them."

It seems too late for many. Your behaviour in previous weeks made harder to believe in these words.

Posted by Milan Jurik on November 01, 2007 at 01:07 PM EDT #

I like having the bash as root-shell especially on live media.
This is just my personal opinion. Keep your good work going!

Posted by Knut(TM) on November 02, 2007 at 01:19 AM EDT #

Milan, were this project at a stage where it was ready for review, it would go to that. The issue that many in Sun seem confused about is that this distro is the rough equivalent of an ON project's BFU bits - a coherent system for people to test out. As such, no decisions here are final, all are subject to review and modification. But "consensus" on projects doesn't mean "anyone who happens to make a comment on a mailing list" but rather "those who have invested energy and contributed to the project", and that is true here, whatever you might think. We welcome participation, but by that I mean contributing code, providing reviews, testing, documentation, or whatever your skill set allows. But if one's skill set consists exclusively of sending email accusing project team members of malfeasance, you can be assured that won't get you a hearing in most any project in any community.

Posted by Dave Miner on November 02, 2007 at 04:45 AM EDT #

You don't articulate the reason that bash is a shame? There are a huge number of folks out there using bash day to day. I don't have hard data but on recent Unix OSs I'm sure its far and away the shell of choice. I was very happy to see that bash prompt, its what i know and I hazard a guess that its what a large proportion of our target audience use also.

Its 2007 what are the attractions of ksh93?

Posted by Tok on November 02, 2007 at 04:45 AM EDT #

if you want to make opensolaris/indiana/whateveryounameit friendly to the masses, bash has to be the default, as it is the de facto standard in the unix-like world. Sure there is about 0.5 % people using something else ...

Posted by hajma on December 16, 2007 at 12:32 AM EST #

Bash is indeed the most popular shell in the open source community, for a very simple reason - it was there when ksh was not. It took until the late 90s with Eric Raymond's \*bazaar\* for open source other than Gnu to catch on.

I also understand that, if bash is what your toolkit uses, and you're concerned about your time-to-market, you include bash in the bundle.

All that said, I still believe ksh93 to be the better POSIX type shell available.

Posted by Henk Langeveld on December 28, 2007 at 08:50 AM EST #

Post a Comment:
Comments are closed for this entry.

I'm the architect for Solaris deployment and system management, with a lot of background in networking on the side. I spend a lot of my time currently operating Solaris Engineering's OpenStack cloud. I am co-author of the OpenSolaris Bible (Wiley, 2009). I also play a lot of golf.


« July 2016

No bookmarks in folder


No bookmarks in folder