[comp.sys.ibm.pc] SCO vs. Microport Xenix

tucker@urbsdc.Urbana.Gould.COM (06/27/88)

Does anyone in netland own a copy of SCO Xenix or Microport UNIX for
a "286" AT?  I'd like to know if you are happy with it.  I'm thinking
about getting a UNIX port for my AT, but the only reviews I've found
in magazines are for the new 386 versions of Xenix.

I would also be interested in the quality of compiler tools and the
number of bugs in the product in general.  Both these products support
MS-DOS 8086 emulation modes.  Any comments on how well the emulation
works?

Tim Tucker
..ihnp4!uiucdcs!urbsdc!tucker		(UUCP)
tucker@xenurus.Gould.COM		(Milnet)

hedrick@athos.rutgers.edu (Charles Hedrick) (06/29/88)

>Does anyone in netland own a copy of SCO Xenix or Microport UNIX for
>a "286" AT?  I'd like to know if you are happy with it.

I've got Microport Unix for the PC/AT.  Whether it's acceptable
depends upon what you want.  It's a very vanilla System V release 2.
Documentation is pretty much straight ATT.  They've added csh and
more, which are probably the most visible Berkeley utilities, but of
course being SVr2, the csh doesn't have job control.  They also added
a menu-based system administrator's tool, though I haven't tried it.
(There's essentially no system administration if you are running it as
a single user PC.  Besides, real Unix system programmers don't use
menus.)  It's pretty much like a very small Unix timesharing system,
not a workstation.  That is, everything you expect to find on a
Unix-based workstation is missing: no window system, not even any
graphics (though you do have access in a fairly clean way to the
bitmapped memory, so if you want to do things yourself you can -- and
somebody recently posted some graphics routines).  About the only
thing they do that you can't do on a glass TTY is support multiple
virtual consoles (ALT F1 through ALT F4 switch you between 4 screens,
each of which is treated by the system as a completely separate device
-- this is a very useful feature).  There are some performance
problems.  In particular if you want to hook into the usenet you're
probably going to be disappointed.  The problem is that the async
support doesn't have good performance.  You can't have multiple
high-speed lines.  People have slightly different experiences, so it's
not clear exactly what the limit is, but everybody agrees that there
is trouble doing uucp on several 9600 baud lines at once.  Some people
find that there is trouble doing it on even one line.  But the problem
in evaluating these reports is that people use a variety of different
terminal controller cards, so it's never quite clear whether problems
are in the kernel or just that it can't handle 100 different brands of
almost-compatible peripherals.  There are also problems with disks
that have more sectors on a track than the original AT disks, with
multiple disk drives in certain configurations, etc.  The async lines
tend to hang when unexpected things happen (like you have dialed out
to another machine and carrier drops).  If your disks are supported
and you don't make heavy demands on the async lines, it seems fairly
reliable.

However before you sink lots of money into Unix for the AT, you may
want to consider whether you're ever going to be happy with it.  Lots
of newer Unix software won't run on a 286, and probably never will.
Of the stuff you see on the sources groups, a lot of it will work.
But anything window-oriented, Gnu Emacs, and various other software
that makes a modern Unix system more interesting than a PDP-11 10
years ago, won't work.  New software tends to assume 32-bit words and
a large contiguous address space.  Also, System V release 2 doesn't
have the facilities to support a window system.  I can't say enough
bad about System Vr2.  Aside from the fact that it doesn't have pty's
(which makes a window system essentially impossible), doesn't have
select (which makes a lot of software trying to do interesting things
with the async lines impossible to write), and doesn't have job
control (though with the Korn shell, you can sort of fake it), the
file system is incredibly slow.  Simply starting a 300Kbyte program
feels like it takes forever.  Of course typical micro disks win no
prizes for speed, but MS-DOS starts programs far faster with the same
disk.  (All these things are fixed in Berkeley Unix, by the way.  It's
a shame that people judge Unix based on System V rather than BSD or
the Bell Labs research versions.  MS-DOS might not be dominating the
world if Xenix and Microport had been based on a decent Unix.  This
stuff will probably also be fixed in System V release 4, if you like
futures.)  My guess is that System V release 3 will never be done for
the 286.  If you want a Unix system just so you can play with the
traditional Unix tools, e.g.  C, awk, nroff, etc., you'll find that
Microport SV/AT (and probably also SCO Xenix) is a huge amount of
useful software for the money.  But if you are expecting something
like a Sun, a VAXstation, or a Mac II with AUX, you'll be badly
disappointed.  It's not just slower.  You can't do workstation-ish
things at all.  From the point of view of somebody who is involved in
that world, SV/AT is like going back into history 10 years.  The 386
seems to have a lot more future.  The newer software will work on it,
and window systems are available for it.

The C compiler isn't bad. I haven't seen any bad code generated yet.
However it's incredibly slow compared to Microsoft C for MS-DOS, and
the optimizer blows up on about 5 to 10% of the modules I've tried it
on.  (This isn't so terrible. You just compile those modules
unoptimized.)  The linker is also incredibly slow.  The utilities and
other software seem generally reliable.  Except if you use floating
point.  I don't, so I'm just depending upon bug reports from others.
But based on the messages I see, any serious use of floating point
will make the system crash or the program coredump (depending upon
whether you use floating point hardware or not).  Also, they have two
different malloc's, both of which are buggy.  The old one mostly
works.  Now and then with big programs it claims there is no memory
when there is.  Its main problem is performance.  Any program that
does lots of mallocs (e.g. microemacs or Jove) causes a huge amount of
swapping, which slows things down enormously.  The new malloc
coredumps for every program I've tried.  Fortunately, I have a malloc
that works, and doesn't cause swapping.  I've posted it in the past,
and will mail it to people who need it.

I can make few comparisons with Xenix, as I haven't used it much.

Frankly, I wish I hadn't bought an AT.  I'm not sure quite what I wish
I had gotten, but this isn't it.  I'm less vehement about Microport.
Possibly SCO would have been better, but my main frustration is with
the 286.

I've used the MS-DOS compatibility stuff a little bit.  It seems to
work.  Some cavaets:

  - the MS-DOS stuff will only work with a machine that is *very*
	compatible with the AT.  It's quite possible to have a
	machine that will run Unix but not MS-DOS under Unix.
	This is because switching from protected to real mode isn't
	something that most hardware vendors expected you to want
	to do.  The major vendors now seem to have fixes, but
	you may need new BIOS ROM's, fixes to the keyboard, etc.,
	depending upon the age and manufacturer of your machine.

  - the process of installing it the first time is very
	interesting, to say the least.  The instructions are right,
	but I misunderstood them the first time, and it took me
	days to make it work.  Given what is going on, it would
	be hard to come up with a simpler way of doing things.

  - you can only run one MS-DOS program at a time

  - async I/O is very slow, because it has to switch modes for every
	interrupt, and that is typically slow (though it depends
	upon your hardware).  My terminal emulator ocasionally
	drops characters at 2400 baud, though Microport says that
	with some hardware you can get 2400 baud reliably if
	absolutely nothing else is going on on your machine.

  - there is no support for memory above 640K from MS-DOS.

  - if your MS-DOS program goes into protected mode, you lose.

The last two restrictions mean in effect that your program has to be
one that would run on an 8086.  Other than that, it's fairly
transparent.  After all, it effectively gives MS-DOS complete control
of the hardware when DOS is scheduled to run.  There are hacks so that
MS-DOS can access your Unix disks and visa versa.  They seem to work.
You have to have a copy of MS-DOS, preferably version 3.2.

tif@cpe.UUCP (07/01/88)

Written 11:21 pm  Jun 28, 1988 by athos.rutgers.edu!hedrick
>>Does anyone in netland own a copy of SCO Xenix or Microport UNIX for
>>a "286" AT?  I'd like to know if you are happy with it.
>I've got Microport Unix for the PC/AT.  Whether it's acceptable
>depends upon what you want.  It's a very vanilla System V release 2.
>It's pretty much like a very small Unix timesharing system,
>not a workstation.  That is, everything you expect to find on a
>Unix-based workstation is missing: no window system, not even any
>graphics (though you do have access in a fairly clean way to the
>bitmapped memory, so if you want to do things yourself you can -- and
>somebody recently posted some graphics routines).  About the only
>thing they do that you can't do on a glass TTY is support multiple
>virtual consoles (ALT F1 through ALT F4 switch you between 4 screens,
>... [lots of negative comments]

Rather one-sided negative

SCO XENIX doesn't have most of the problems mentioned here.  Realistically
it isn't a workstation (i.e. graphics) but it does Unix SVR2 plus some
berklyisms pretty well.  In my opinion, at this point, anyone running DOS
under *nix is silly (lets get a car and drive it on two wheels instead
of getting a motor-cycle in the first place!).

I have a real machine (386) at work but I'd be plenty happy to have a SCO
Xenix on an AT at home.

			Paul Chamberlain
			Computer Product Engineering, Tandy Corp.
			ihnp4!sys1!cpe!tif