Info on BRL shell

Doug Gwyn gwyn at smoke.ARPA
Fri Sep 9 20:18:03 AEST 1988


		BRL SVR2 Bourne shell description


BRL will supply, as part of its UNIX System V emulation for 4.nBSD
(or otherwise upon special arrangement), only to sites that supply
a copy of the identification pages of their AT&T UNIX System V
Release 2.0 or later source license in addition to a 1/2" magtape
with reusable mailer, a substantially overhauled SVR2 Bourne shell
that differs from the original version distributed with UNIX System
V Release 2.0 in the following ways:

If the super-user's $PS1 does not end in "# ", it is appended as a
safety reminder.

$IFS is no longer inherited from the environment.  There are a
couple of other attempts to improve shell script security also.

The hash -i option suppresses the error message that is normally
generated when hashing commands not found in the search path.

Many bugs have been fixed (but not all -- for example, function
arguments still overwrite the shell's argument list, and quoting
is not handled quite right).

I/O redirection via <> (read+write) now works.

A null field at the end of $PATH now works properly.

Memory management is no longer done via SIGSEGV trapping (unless
you choose to configure the shell that way -- but why would you?),
so signal 11 can now be trapped.

The shell (unless you otherwise configure it!) no longer attempts
to execute directories and other silly file types.

A variety of options can be configured by editing the Makefile.
The BRL SVR2 Bourne shell sources can serve for building shells
for vanilla System V, for 4.nBSD /bin/sh, for dual-universe
environments, in short to replace virtually any Bourne shell.

The name of the system profile (normally /etc/profile) is now
specified in the Makefile.

The "newgrp" or "login" command is built in depending on the
environment the shell is configured to operate in.

The SVR3 "getopts" command is provided; it was re-implemented
independently, not taken from SVR3-licensed sources.

The following System V features are now optional:
	$SHACCT shell accounting log file
	obsolete ^ synonym for | pipe symbol
	set -r, restricted shell "rsh"
	background processes automatically "niced"

The following options can be configured into any version:
	7th Edition UNIX echo -n option (standard for 4BSD) to
		suppress the trailing new-line
	8th Edition UNIX echo -e option (no-op for System V) to
		enable \ escape interpretation
	8th Edition UNIX "builtin" and "whatis" commands
	set -E to protect against accidental EOT logout
	set -H to enable command history, EMACS-like editing, and
		TENEX-like name completion; includes $HISTFILE
		command history log file
	set -S for "cd" spelling correction
	$ENV per-interactive-shell startup command file
	$PPID parent PID, non-modifiable
	$TIMEOUT to time out shell on lack of interactive input
	~user name substitution

On systems having proper support, the following are configurable:
	Pyramid's "att", "ucb", and "universe" commands and
		$UNIVERSE variable
	ulimit -cdmt options for additional 4BSD resource limits
	set -I to print resource usage at process termination
	set -J to enable job control; set -N for immediate
		job termination notification rather than at PS1;
		includes "jobs", "fg", and "bg" commands, etc.
	"pwd" compensation for symbolic links to directories

By exploiting many of the above features in combination, one can
set up a really slick working environment.  Several users of the
"Tenex Cshell" have switched to this one and claim to prefer it.

The manual entry has been overhauled and made more compatible with
the SVR3 description.  Descriptions of the new features were added,
of course.  Although the manual entry now describes proper quoting
behavior, the SVR2 shell problems with this have not been fixed.
If someone can supply fixes for them, or for the 7-bit character
orientation, I'll be glad to include them in a future release.

The sources have been made much more portable; many machine-
dependent assumptions have been removed.  The BRL SVR2 Bourne shell
is known to have worked successfully on the following systems:
	DEC VAX running 4.2BSD
	DEC VAX running 4.3BSD
	Gould PowerNode series running UTX-32 2.0
	Alliant FX/8 (presumably also FX/1) running Concentrix 2.0
	Alliant FX/8 (presumably also FX/1) running Concentrix 3.0
	BRL UNIX System V emulation for VAX, Gould, and Alliant
	Silicon Graphics Iris series 3000 running GL2-W3.5
	Silicon Graphics Iris series 4D running UNIX 3.2
	Cray X-MP/48 running UNICOS 2.1
	Cray X-MP/48 running UNICOS 3.0
	Cray-2 running UNICOS 3.0
Porting to another system should be simply a matter of editing the
Makefile appropriately, following instructions contained there.

The shell sources include a public-domain implementation of the
POSIX directory access routines for systems that don't already
have them.

The current state of the BRL SVR2 Bourne shell is the result of
considerable effort by many people around the world.  The
following are people I know of who have contributed:
	David Barto, Wes Chalfant, Jan Edler, Ed Frankenberry,
	Doug Gwyn, Guy Harris, Brian Horn, Doug Kingston, Richard
	Mathews, Bob Miles, der Mouse, Ron Natalie, Scott Rautmann,
	Arnold Robbins, Lou Salkind, Donn Seeley, Amos Shapir,
	David Sherman.
Various anonymous bug fixes and improvements from several vendors
have also been incorporated, and some of the features were
inspired by other shells.  Thanks are also due to BRL guinea pigs
who put up with trial versions that "almost" worked right.

People who have already requested either the shell or the whole
UNIX System V emulation package from me should receive their
copy in the mail soon.  Thanks for waiting patiently until the
shell was revamped!  Others can send their requests to:
	Douglas A. Gwyn
	U.S. Army Ballistic Research Laboratory
	SLCBR-VL-V
	Aberdeen Proving Ground, MD 21005-5066
	(301)278-6647
	Gwyn at BRL.MIL
Don't forget to include the license and remailable magtape.
(Send no money!  I cannot accept it, even to pay postage.)
Unfortunately, requests from outside the United States must be
routed via the appropriate U.S. Embassy.  (Alternatively, have
somebody in the U.S., who is willing to take responsibility for
complying with the relevant U.S. laws, act as your agent.)

Please do not ask for a manual entry or sources to be sent over
the net.  I also do not have time to respond to detailed
questions; the above description will have to suffice until you
get your copy of the shell.



More information about the Comp.unix.wizards mailing list