Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.

Experience with Unix on PC XT

Skip to first unread message


Sep 21, 1983, 10:49:16 AM9/21/83
The following comments are from my use of Mark Williams Coherent and
Venturcom's Venix on an IBM PC XT. I was bringing up a medical records
information system consisting of around 8,000 lines of C that had
been running on an 11/23 (running Venix) and an IBM Series/1 (running
IBM's Unix - cpix). The hardware was a vanilla PC XT with 256Kb and a
monochrome monitor.

In summary, we used Coherent for one week then gave up on it completely.
The use of Coherent was a last ditch effort as we kept getting the run
around from Venturcom as to when we'd get Venix for the PC (next week, ...).
Fortunately, after the week's effort with Coherent we finally got a Venix
system out of Venturcom.

Coherent is a Unix look-alike that was written from scratch by Mark
Williams Co. - they pay no royalty to AT&T. They developed all of the
system (including yacc, lex, make, etc) from scratch. Venix is a port of
AT&T Unix that is supposedly optimized for small systems. We don't use
any of the Venix special features (real-time process control, asynchronous
i/o, semaphores) as we require portability to many Unix systems.

Both systems need better documentation. In all fairness to Venturcom,
their manuals were labelled "Preliminary", so more complete versions may
be in the making.

Since all of our source code existed on a Unix system, our first job
was to get the code onto the PC, with the least amount of work. We used
the async port on the PC connected to an RS232 line on the Series/1 and
wrote a small program to transfer the files, one "block" at a time with
a checksum, and retransmit as necessary. This little task showed a difference
between the two systems. With Coherent we could run no faster than 4800
with a block size of 64 bytes. Even then there was a perpetual loss of
characters on the PC forcing timeouts and retransmissions. The same code
under Venix ran at 9600 and a buffer size of 128 with not a single lost
character. Obviously Coherent does not handle the async port correctly
or there are other kernel problems.

Problems with Coherent:

1) Their version of ld considers multiple occurences of an external
(such as "int x;" outside of any function) as a multiply defined symbol!
They then allocate storage for each occurence too! This is not standard
Unix and is a major flaw in their system.

2) Their ld only supports 407 files. The "-i" and "-n" flags to the loader
are ignored.

3) Their C compiler did not work when executed from a Makefile, generating
an error "can't allocate tree nodes". When the compiler was executed
by hand from the terminal it worked. This prevented the use of make.

4) There appear to be memory problems with their system that show up as
system call errors when a program grows too large. This occured with a
407 file that was malloc'ing (and checking for a NULL return) with no
other processes active, except the init process, the shell and the
kernel - on a 256Kb system!

5) They are missing tar, although they do plan to add it later. I use
tar for moving directories, not just for tape backup.

6) On the PC XT they have a problem getting the XT disk going, sometimes.
Their customer support acknowledged the problem and trying the same
operation a few times got things going.

7) They don't write a bootstrap on the XT disk, forcing you to always
have the system diskette around when the system is booted.

Problems with Venix:

1) vi and ex appeared in the documentation but not on the distribution.
At least they plan to support vi on the PC. Also, they did include
libtermlib.a and termcap. They did not document all of the console
functions (reverse video, underlining, etc) but a little experimentation
showed that all of these functions are accessible easily.

2) Their ranlib has a problem - after about 30 objects are inserted it
runs out of memory.

3) They have set up tar to handle diskettes very nicely (automatically
goes to next diskette when current one is full, ...). However, that
screws up things like moving directories with tar since there is no
way to say you are not using a diskette (you'd think "tar xf -" would
get around it).

4) Having a large array as an automatic variable (~32K bytes) sometimes
bombs the entire system.

ALL IN ALL: Venix worked out much better than Coherent. My gut feeling
all along to avoid the look-alikes (Coherent, Idris, etc.) has been
reinforced. Given the miniscule price difference between Venix and
Coherent there is no reason to avoid the "AT&T" system.

Richard Stevens
Health Systems International
{decvax | ihnp4} ! kpno ! hsi ! stevens

0 new messages