Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
ash variants
[go: Go Back, main page]

Bourne | Shells |  #!  | ash | find | ARG_MAX | echo | "$@" | $() vs ) | UUOC | IFS | - | ../Various | HOME
portability | permissions | tty defs | tty chars | using siginfo | nanosleep | line charset | locale


Ash (Almquist Shell) Variants

2006-30-01 (see recent changes)

This list aims at documenting relationships. Thus, characteristic changes or bugfixes are listed, chosen somewhat arbitrarily. For the variants without any changelogs (traditional BSDs and Minix) this log tries to be complete. For the other variants this was certainly not the goal.

Content:


1.) Original release ('89)

It was written by Kenneth Almquist as replacement to the "System V Release 4" Bourne shell
due to the license war between AT&T and Berkeley. Berkeley distributed it first with "BSD 4.3-Net/2".
It was posted to comp.sources.unix, "A reimplementation of the System V shell".
See <1745@fig.bbn.com> ff., 30-05-1989.

Some differences to the SVR4 shell (which were never changed later):

Some details, where the original ash resembles the SVR4 shell, but which were changed in the modern variants:

As summary in advance: some details which are only found in the original (and early traditional BSD) variants.

[1] No ash variant needs "case x in (x)" because the parser is robust about case constructs in $(...) command substitution.
However, several other shells are not robust and they have to work around it this way. So this is a portability issue.

For some more differences to the SVR4 shell, see DIFFERENCES from the distribution.
Naturally, nothing from the list of Bourne specific features is implemented.

2.) Traditional BSDs

  4.3BSD-Net/2 (06/91)

  4.4BSD-Alpha (06/92) - starts aiming at POSIX.2

  4.4BSD-Lite ('94)

   Apparently, the 386BSD cluster patch went into this release or was inspired by it:

  4.4BSD-Lite2 ('95)

3.) NetBSD sh

Derived from 386bsd-0.1 and 4.4BSD-Lite.

CVS-Web on netbsd.org.

4.) FreeBSD sh

Derived from 4.4BSD-Lite and -Lite2.

CVS-Web on freebsd.org.

5.) BSD/OS 4.2 sh (BSDi) ('97)

Derived from 4.4BSD-Lite2, according to the SCCS-IDs, (except main.c which is "8.7 7/19/95" instead of "8.6 5/28/95") with a very few changes:

Thus, there remain for example the following differences to modern variants:

6.) dash ('97-)

This Linux port started as a fork from a late NetBSD variant, "current 19970715", with a release number "0.3.1" and, among numerous fixes, later repeatedly re-synced with NetBSD (02/98, 03/00, 07/00, 03/01 : 0.3.8-1). It was renamed to "dash" (influenced by debian) with release 0.4.1, 09/02. Since 0.4.26-1 it's not a debian native package anymore but maintained independently.

Home of dash, Debian package. For the changelogs, see ./Changelog and the older ./debian/changelog in the distribution.

7.) BusyBox ash ('01-)

The BusyBox distribution is aiming for small implementations. It incorporated the debian ash 0.3.8-5 with release 0.52 (07/01).

8.) Minix sh ('01)

On Minix 2.0.3, an ash variant replaced the "minix shell" as /bin/sh.

Derived from 4.3BSD-Net/2, according to the SCCS-IDs,
apparently with the 386bsd cluster patch applied.

Additionally:

Minix specific: hence, the following is not implemented:


<http://www.in-ulm.de/~mascheck/various/ash/>