Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!henry
From: henry@utzoo.UUCP (Henry Spencer)
Newsgroups: net.micro.68k
Subject: Re: Holy Holistic, Batman!  (OS-9 and the art of being holistic)
Message-ID: <6014@utzoo.UUCP>
Date: Thu, 3-Oct-85 13:39:27 EDT
Article-I.D.: utzoo.6014
Posted: Thu Oct  3 13:39:27 1985
Date-Received: Thu, 3-Oct-85 13:39:27 EDT
References: <576@sftig.UUCP> <1001@bnl44.UUCP> <11467@rochester.UUCP>
Organization: U of Toronto Zoology
Lines: 31

> .... Opening a named pipe is done through open()...

That's how it works in Unix too.

> ... you read and write from it with no special features like sockets...

Same comment.  Sockets are a Berkleyism, and arguably a botch.

> ...  Forks are done by giving the name of your function and the
> parameters to a OS-9 system call, and the routine is forked into a child
> process -- no having to place both parent and child code into a big "if"
> statement...

This is actually a nice idea; hold on five minutes while I write a C
function to do it under Unix...  (Yes, there is a defect in that said
function probably ought to be a standard feature rather than a local hack.)


General comments:  There are definitely a lot of places where Unix could
be cleaned up if you started from scratch.  Of course, this would break
compatibility with every other Unix on Earth, a serious defect considering
that portability is one of Unix's strong points.  However, some of the
things that look strange do make sense if you look at them closely and
understand what they are used for.  (For example, the fork/exec split looks
odd until you try to figure out how to implement things like i/o redirection
and shell pipes without it; the ability to modify the environment after
the fork but before the exec is important.)  Before attempting to "fix
Unix's mistakes", it is wise to understand which of them aren't mistakes.
-- 
				Henry Spencer @ U of Toronto Zoology
				{allegra,ihnp4,linus,decvax}!utzoo!henry