[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [BusyBox] Shells

Vladimir N. Oleynik wrote:

Erik Andersen wrote:

On Tue Jul 03, 2001 at 02:17:06PM -0400, David Douthitt wrote:

I've followed the discussion (somewhat) on different shells.  I'm
wondering what the difference is, and in particular, is ash going to
absorbed into busybox or what?

What are the differences between:

* ash
* hush
* lash

Any others I missed?  (probably...)

In cvs we currently have lash, hush, msh, ash.  For all size comparisons
below, I am leaving BB_FEATURE_COMMAND_EDITING disabled.  Enabling it will
add about 8k to the size of each shell.

lash: very small (adds just 10k) and quite usable as a command prompt, but it
   is not suitable for any but the most trivial scripting since it does not
   understand Bourne shell grammer.  It does handle pipes, redirects, and
   job control though.  Adding in command editing makes it quite nice as
   a command prompt.

hush: Also quite small (just 18k) and it has very complete Bourne shell grammer.
   It handles if/then/else/fi just fine, but doesn't handle loops like for/do/done
   or case/esac and such.  It also currently has a problem with job control.

msh: The minix shell (adds just 30k) is quite complete and handles things like
   for/do/done, case/esac and all the things you expect a Bourne shell to do.  It
   is not always pedantically correct about Bourne shell grammer (try running
   the shell testscript, tests/sh.testcases, on it and compare vs bash), but for
   most things it works quite well.  It also uses only vfork, so it can be used
   on uClinux systems.  I just added this, so there is still room to shrink
   it further...

ash: This adds about 60k in the default configuration (I need to review vodz'
   latest update, perhaps he has made it smaller again) and is the most complete
   and most correct shell included with busybox.  This was also recently added,
   and both Vladimir and I have been working on it.  There are a number of
   configurable things at the top of ash.c as well.  The Posix math stuff is
   currently disabled, but I intend to fix it up when I get some time.

Both msh and ash were very recently added to CVS, and so neither of these
shells supports the STANDALONE_SHELL option yet.

So if busybox ash had math support would it be a posix compatable shell, or would there be other issues as well ?

The root disk of debian boot floppies has ash from the deb (which is 85kB) as opposed to ash from busybox, which from current CVS adds 67kB.

boot floppies expects a posix compatable shell for various scripts, debootstrap being one of them.


Reply to: