[net.micro.68k] OS-9 and UNIX: Features

daleske@cbdkc1.UUCP ( John Daleske x4335 3E296 RAA) (12/18/85)

[This note was prepared for posting to the fledgling, flopping net.os and
 is place here for lack of a better home.  We can move it to whatever place
 ends up being the home for this type of discussion.  Note that I did NOT
 cross-post to net.unix or net.unix-wizards as those places appear to be
 homes for zealots.  Note that I am presenting these as my own views and am
 not intending this to be interpreted as representing my employer nor the
 corporation to which I am currently consulting.]

A lot of "my OS is best" statements fly around.  Relatively objective
discussions occur infrequently.  Comparisons between more than a couple OSs
becomes difficult for a number of reasons.

- One's work generally tends to settle toward one environment.

- Experience (read "prejudices, opinions, etc.") is built over time.  The OS
  you once hated (read "MVS, VS1, etc." :-) ) likely has evolved somewhat
  and possibly is now better than it was ten years ago.

- Benchmarks of OSs are difficult to compare.  Benchmarks often enhance
  particular features beneficial to one type of OS.

- Operating Systems are intended for certain environments.  You wouldn't
  want to do real-time applications on a batch system would you?



1. "OS-9 is just UNIX under a different name" (or is it?)

I recently heard the statement:

   "If there is a feature of an operating system you want, there is likely a
   version of UNIX around that supports that feature." (paraphrased)

The context of the statement was basically that I stated in response to the
question "What is OS-9 good for?" that OS-9 is good for and much used in
real-time processing applications, OS-9 is ROM-able, OS-9 is useful in
environments with limited resources (small RAM, diskless, etc.).

The retort was the above paraphrased statement and mention of UNIX versions
which were ROM-able (HP-UNIX?), small (mini-UNIX), and real-time (?).

In my head I had prepared the retort:  "But then, are they "really" UNIX?!"
with a big a-hah! and told you so! and so's your sister!  "Do you REALLY
want to have five hundred different versions, each with its own extensions
floating around?"

Instead I reconsidered and said "Uh huh." and left with a big question mark
resting on the cloud of thought floating above me.

Indeed, OS-9 is an off-spring of what UNIX was in the late 1970s with a
completely different implementation.  Reference the following statement:

   UNIX: An operating system similar to OS-9, but with less functionality
   and special features designed to soak up excess memory, disk space and
   CPU time on large, expensive computers.
   -- OS-9/68000 Operating System Users Manual

In a sense, yes, OS-9 and UNIX are just different implementations of the
same general concepts.  Applications can be ported between UNIX and OS-9
with about the same difficulty as between the major implementations of UNIX
(System V, 4.xBSD, System III).

One major deficit in OS-9 is in the shell.  Sure, shells could also be
ported or new shells developed for OS-9, but comparing standard sh, csh,
and the standard OS-9 shell shows a major increase in functionality in sh
and csh.



"Standard UNIX versus Standard OS-9"

Which IS best?  Both and neither.  Each is best in certain applications.
Personally, I like the shells on standard UNIX (though, in reality, I'm
using ksh, which is NOT (yet) standard) and I LOVE the modularity of the
OS-9 implementation.

Ok, so now I'd like to see a reasonably objective discussion of OS-9 and
UNIX-like systems.  Pick and other OS users feel free to throw in your
two cents.  I'll go home this weekend and write up a beginning discussion
of features for OS-9 versus UNIX.  Let's see some activity!
-- 
    -- [NOTE: No one else would WANT to claim these statements!] --
John Daleske at AT&T Bell Laboratories, Columbus, Ohio.  614-860-4335
UUCP: {ihnp4,cbosgd,desoto}!cbdkc1!daleske
__________________________________
"Now," said the butterfly, "look closer and tell me what you see."
"I see a tiny horse with wings upon its back" said Flutterby. "Why that's
 me I see!  But what am I?"
"You are you. Just as I am me!" said the wise old butterfly.  "Nothing more,
 nothing less."

berger@datacube.UUCP (12/24/85)

We are an industrial user of os9 ourselves.  We do all our
development under unix and cross compile to target prom based 68000's
running os9.  This is a very nice hybrid!  

Since most of our  work is  in controlling  image processing hardware
(frame  buffers, real  time signal  processing boards,  etc) Its nice
having  a  target  environment  that does  not have  layers of memory
management and protection.  

Besides not hiding the hardware too much, OS9 has nice  support for C
run-time.  A rather complete stdio library (though I  wish they would
implement  SVID!),  a shell  (we use  it just  to start applications,
maybe Microware could port ksh or csh..), and a symbolic debugger.  

On the other hand, I would feel very cramped if  I was  forced to use
OS9  as  a  development system.   OS9  would be  a better development
environment than  something like  MS-DOS or  CP/M, but  does not have
anywhere near the richness  of Unix.   I  think the  statement of OS9
being where unix was in the early 70's is  quite valid.   Its elegant
and  simple, but  it lacks  the richness  and robustness  of a modern
unix.  

The one feature it does have over unix though, is dynamic linking of
memory modules and super romablity.

The  dynamic  linking  feature  allows  the  user  to create function
libraries that can be  romed.   For instance,  microware supplies the
standard io library in this form.   You link  only the  hooks in your
application code, then at runtime, your application code is linked to
the  standard  i/o  library.   Thus  your executables  don't all need
redundant copies of the  stdio or  math library.   The  user can also
create custom libraries as well.  

Executable modules do not need to know absolute starting locations as
well.   You can  prom an  executable module  and put  it at arbitrary
addresses.    OS9  figures out  where things  are at  startup and the
executables  resolve  globals  and such  at run  time.   This is very
convienent for building custom systems.  

OS9  automatically  supports the  initialization of  static memory at
runtime as well.  

All in all this makes a lovely target prom environment!  Microware is
constantly upgrading their C compiler.   Their main  C guy  is on the
ANSI C committe and they plan to meet the ANSI C specs.  

The things I would wish for are:
* An SVID compatability library. OS9 uses completly non unix
  "ioctl" calls for controling terminals, etc (Its not even called
   ioctl)

* Official support of device drivers being written in C.  (We worked
  it out so we do it anyway.  It would nice to have some more
  official support (documentation)

* Networking that linked to Unix (TCP/IP, NFS, etc)

* A real high level "C" symbolic debugger (dbx?)

* Windows standards (This is not an os9 problem but an industry wide
  problem!)

* Official Microware support of other hosts.  They currently
  only support Vaxen (VMS and Unix).  I'd like to see IBM PC's
  (Not because I like them, just because they are all over the
  place!). Sun's and Apolo's, etc. (We've got it on our Pyramid
  but that was a special)

			Bob Berger 

Datacube Inc. 4 Dearborn Rd. Peabody, Ma 01960 	617-535-6644
	
ihnp4!datacube!berger
decvax!cca!mirror!datacube!berger
{mit-eddie,cyb0vax}!mirror!datacube!berger