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