Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: Notesfiles $Revision: 1.7.0.10 $; site uokvax.UUCP Path: utzoo!watmath!clyde!burl!ulysses!mhuxr!mhuxn!ihnp4!inuxc!pur-ee!uiucdcs!okstate.UUCP!uokvax.UUCP!emjej From: emjej@uokvax.UUCP Newsgroups: net.micro.6809 Subject: Re: os9fork() and chain() Message-ID: <3500133@uokvax.UUCP> Date: Mon, 10-Feb-86 08:03:00 EST Article-I.D.: uokvax.3500133 Posted: Mon Feb 10 08:03:00 1986 Date-Received: Wed, 12-Feb-86 08:25:11 EST References: <304@chinet.UUCP> Lines: 25 Nf-ID: #R:chinet.UUCP:304:uokvax.UUCP:3500133:000:1065 Nf-From: uokvax.UUCP!emjej Feb 10 07:03:00 1986 You can't clone the Unix fork() with os9fork(); even if you fork a process with the same primary module, its state isn't duplicated from that of the parent. Frankly, this is a good thing; the Unix fork() sucks--it requires considerable hardware assist to avoid massive overhead (ask someone the story behind Berserkeley's vfork() call), and is practically never used save in a form that emulates os9fork(), i.e. if (fork(.) says I'm the child) execl(what I wanted to run in the first place); instead of the code in the parent os9fork(what the child ought to run); As for what parameters it and chain() ought to have, well, I'm afraid you have to either know, or you can link to the module and take a peek. It would have been nice if the table mapping module types to how they should be run when forked or chained to were in the kernel and tweakable, rather than in the shell. (While OS-9 is internally much cleaner than Unix, it's not perfect; I'd like to think that recognition of this distinguishes us from the Unix-worshippers.) James Jones