Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.2 9/5/84; site mcrware.UUCP
Path: utzoo!watmath!clyde!cbosgd!ihnp4!stolaf!umn-cs!isucs1!mcrware!kim
From: kim@mcrware.UUCP (Kim Kempf)
Newsgroups: net.micro.68k
Subject: Re: Holy Holistic, Batman!  (OS-9 and the art of being holistic)
Message-ID: <147@mcrware.UUCP>
Date: Sun, 27-Oct-85 09:15:39 EST
Article-I.D.: mcrware.147
Posted: Sun Oct 27 09:15:39 1985
Date-Received: Fri, 8-Nov-85 22:07:01 EST
References: <576@sftig.UUCP> <1001@bnl44.UUCP> <11467@rochester.UUCP> <6014@utzoo.UUCP> <139@mcrware.UUCP> <313@graffiti.UUCP>
Organization: Microware Systems Corp., Des Moines, IA
Lines: 67

> > Ok, some of you UNIX-sheltered programmers need a lesson on advanced OS-9
> > programming topics.  OS-9 pipes can be "named" much like disk directory
> > files:
> > ...
> 
> That's a very nice interface. I assume that /pipes is analogous to a mounted
> device in UNIX, but that OS/9 allows non-block devices to be mounted in the
> file system.
> 
As I said, UNIX-sheltered.  Try to comprehend I/O devices that have no
association with the disks.  An "inode" is not required for OS-9 pipes or
any other device, and therefore needs no disk access to open such.
OS-9 does not have a mount concept (at least not yet).  OS-9 has no
homogenous file system.  Each disk device contains its own discrete
"file system".  A disk directory search is not required to open a character
device (or any other device).  This allows OS-9 to run on systems without
disks.  Devices appear to the system upon access to a driver. 
The block/non-blockness of a device is controlled at a level above the driver,
in the file manager.  Four common file managers are used in OS-9 systems:
RBF (random block), SBF (sequential block), SCF (sequential character) and
NET (network access).

> As for the rest of your message: we don't need the OS/9-UNIX flames.
> You'll get my MMU when you pry my cold, dead, fingers off the keyboard.
No flames intended.  Just pointing out the alternative to an MMU or swapping
to disk...  you choose the more expensive and complicated....

> As for the differences in fork()-ing, I would like to comment that you're talking about
> the interface to fork(), as opposed to the implementation. Or does OS/9 fork
> just set up a process table and put the address of the routine you hand it
> into the child processes PC?
> 
No.  I am talking about the implementation.  The UNIX fork(2) takes no
arguments.  It's effect to to create a clone of the process, the only
difference being the process ID.  To do this memory-management is required to
map the same logical address space as the parent process, or a swapping
facility to place the data and stack areas of the child process in the
same physical addresses as the parent.  The OS-9 fork is more like a
combination of the UNIX fork() and exec() calls rolled into one.

> It should be obvious why that technique isn't appropriate for a protected
> memory environmnent like UNIX'. It's a much better technique for a non-
> protected system like OS/9 or XINU, yes.
> 
Why not?  What does memory protection have to do with the way fork works?
Is UNIX memory protected without an MMU? May I remind you that memory
protection is provided by hardware, not a software.  UNIX will be just as
easily trashed as OS-9 without the hardware memory protection facility.

>But in any case... OS/9 is not the same sort of system as UNIX. It doesn't need
>some of UNIX features, and vice versa. They are both nice systems for personal
>computers on up. If you want sheer speed & efficiency, get OS/9. I prefer a
>secure system where programs can't clobber the O/S without trying very, very,
>hard.
> 
That, again, is a function of hardware.  Unless you have hardware MMU, it
will be easy to clobber ANY OS.  OS-9's file system is much more rugged and
extensible that UNIX.

"Lest ye appreciate OS-9 when thine gods of the electromotive force frown"

----------------
Kim Kempf, Microware Systems Corporation

  {{cornell,decvax,ihnp4,sdcsvax,tektronix}!uw-beaver}\
 {allegra,gatech!sb1,hplabs!lbl-csam,decwrl!sun,sunup} >!fluke!mcrware!kim
{ssc-vax,hplsla,wavetek,physio,cae780,tikal,telematic}/