[comp.lang.c] uSystem, Version 4.2

pabuhr@maytag.waterloo.edu (Peter A. Buhr) (05/23/90)

I would like to announce, to any interested parties, the availability of
Version 4.2 of the uSystem (pronounced micro-system), a light-weight
tasking facility and a companion monitor preprocessor for use in C on UNIX
systems.


Version 4.2 has several fixes and extension from version 4.1, which was
made available on Feb 25, 1990.


Fixes:

1. The formatted I/O routines now conform to the ANSI standard routines.
(except uGets).

2. Several internal problems were fixed but I can't remember them all.

3. Rewrote a lot of documentation.

4. Set up the Sequent version so that gcc always uses the Sequent assembler
because the GNU assembler does not handle the assembler directives
generated from gcc when the -fshared-data flag is used. This allows the
uSystem to function when gcc is installed using gas.

Extensions:

1. Concurrent I/O capabilities are available in the uniprocessor form.
There is now an almost complete simulation of parallelism on a
uniprocessor.

However, this can result in a some CPU time being wasted while processes
spin. This occurs only when ALL tasks are performing I/O operations.

2. The Sequent Balance is supported in uni and multi processor forms.

3. The Silicon Graphics/IRIX is supported in uni and multi processor forms.

However, GNU C does not always generate compatible argument passing code
with the native C compiler on any MIPS based machine. I don't know who is
inconsistent, but I have reported it to GNU. This causes problems with the
graphics package as calls to graphics routines compiled with GNU C will not
pass arguments correctly to routines that are compiled with the native C
compiler. This means that application programs have to use the native C
compiler and ignore the warning messages from the uSystem prototypes
because the native C compiler is not ANSI compatible. Further, this is our
first port to a mostly non-BSD operating system, so we anticipate there
will be problems. In particular, when using the uSystem in conjunction with
the SGI graphics routines. We have done some testing but we can't test
everything. We will be working on extended support for the SGI graphics
routines during the summer.

4. A large number of configuration files for different machines: MIPS, M68k,
Intel 386, VAX, NS32k, vendors: Apollo, DEC, MIPS, Sequent, SGI, SUN, and
operating systems (BSD 4.3 compatible, IRIX) are now available.


Future Work:

The next version of the uSystem (Version 4.3) will include a port to the
Sparc machine and exception handling facilities, as well as support for the
SGI graphics routines. We hope to have this done by the end of the summer.


Version 4.2 of the uSystem can be obtained by anonymous ftp from the
following location:

   watmsg.waterloo.edu (129.97.129.9)   pub/uSystem/uSystem.tar.Z

The distribution file is in compressed tar format. Execute the following
commands to unpack the source:

   uncompress uSystem.tar.Z
   tar -xf uSystem.tar

The README file contains all the installation instructions. Good luck and
happy concurrency.

The uSystem requires at least GNU C 1.35 for all computers except the MIPS,
which requires at least GNU C 1.36.  The uSystem will NOT compile using
other compilers.

There is also an SP&E paper about the uSystem in pub/uSystem/uSystem.paper.dvi
at the same ftp location.