Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site mcgill-vision.UUCP Path: utzoo!watmath!clyde!burl!ulysses!gamma!epsilon!zeta!sabre!petrus!bellcore!decvax!mcnc!philabs!micomvax!musocs!mcgill-vision!mouse From: mouse@mcgill-vision.UUCP (der Mouse) Newsgroups: net.micro.68k Subject: Re: Re: Holy Holistic, Batman! (OS-9 and the art of being holistic) Message-ID: <322@mcgill-vision.UUCP> Date: Sat, 19-Oct-85 19:37:04 EDT Article-I.D.: mcgill-v.322 Posted: Sat Oct 19 19:37:04 1985 Date-Received: Wed, 23-Oct-85 06:06:08 EDT References: <576@sftig.UUCP> <1001@bnl44.UUCP> <11467@rochester.UUCP> <6014@utzoo.UUCP>, <139@mcrware.UUCP> Organization: McGill University, Montreal Lines: 69 > > > .... 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. > 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: > > open("/pipe/msg_socket", ...) > > Any process can open this pipe by name. The process need not have a common > ancestor with the creating process creating the pipe. Another feature of Well, under 4.2, you can get this effect with AF_UNIX sockets. The (syscall-level) interface is not as nice, but that's what library routines are for, and the UNIX philosophy is (among other things) that the kernel should contain a MINIMUM amount of code. Yes, yes, I know, tell that to Berserkeley (1Mb kernel is it now?). > ancestor with the creating process creating the pipe. Another feature of > the named pipes is that the pipe file manager makes the opened named pipes > look like disk directories. For example, the command: > copy *.c -w=/pipe/files > copies all files (*.c) into the pipe named "files". A subsequent: > dir /pipe/files > will display the names of the pseudo-files waiting in the pipe. As the files > are read, the pseudo files are removed from the pipe. The files are read in > FIFO order from the pipe. Neat, a pseudo filesystem in a pipe. Hang on while I write that for UNIX.... Just a minute now - can you access any file in the pipe randomly, seek within it, etc? Or just read them in order? > > [ .... ] > The UNIX-style fork REQUIRES memory management to clone the data and stack > area for the new process. If this were done without memory management, > pointers would change causing the forked process to crash. So tell me, how do pdp11s run UNIX? > [ ... ] > > 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.) > Must not be too hard to do. OS-9 does it quite well. And much faster! I always knew there was a reason vfork() existed! :-) > > Before attempting to "fix Unix's mistakes", it is wise to understand > > which of them aren't mistakes. > ...but kludges in disguise! Yes, but there ARE some nice features, not mistakes, not kludges even. Like the all-commands-are-just-programs idea (though the latest csh has let's see now, about 50 or so builtin commands; I guess we must conclude that nothing is ever quite perfect). Shall we move to net.religion.computers? Or maybe net.unix? -- der Mouse {ihnp4,decvax,akgua,etc}!utcsri!mcgill-vision!mouse philabs!micomvax!musocs!mcgill-vision!mouse Hacker: One responsible for destroying / Wizard: One responsible for recovering it afterward