[comp.misc] The trouble with fork

peter@ficc.uu.net (Peter da Silva) (01/17/90)

Fork() is an elegant concept, but as has been seen it leads to problems
implementing UNIX on a system without an MMU, or implementing a UNIX
lookalike on top of a non-UNIX O/S. It's possible, but expensive.

Wouldn't it be nice if there was a sanctioned P1003 subset that replaced
fork() with a combined fork()/exec() call (spawn?). Or just an addition
of spawn to the standard as an alternative process creation mechanism:
This would radically improve the performance of non-UNIX POSIX systems,
without compromising the capability of the standard...
-- 
 _--_|\  Peter da Silva. +1 713 274 5180. <peter@ficc.uu.net>.
/      \
\_.--._/ Xenix Support -- it's not just a job, it's an adventure!
      v  "Have you hugged your wolf today?" `-_-'

prc@erbe.se (Robert Claeson) (01/17/90)

In article <DW31DR7xds13@ficc.uu.net>, peter@ficc.uu.net (Peter da Silva) writes:

> Wouldn't it be nice if there was a sanctioned P1003 subset that replaced
> fork() with a combined fork()/exec() call (spawn?). Or just an addition
> of spawn to the standard as an alternative process creation mechanism:
> This would radically improve the performance of non-UNIX POSIX systems,
> without compromising the capability of the standard...

An old (4.0?) Microsoft C compiler for MS-DOS that I have in my bookshelf
has a set of spawn() functions in its library with variations like spawnl(),
spawnle() like the exec() family of functions. Oh yes, all functions takes
an additional parameter that indicates whether the parent process should
wait for the child to terminate before it continues execution (in which case
it behaves more like the system() function without the overhead of invoking
a shell). One last note -- MS-DOS only supports the wait-for-child-to-die
flag...

-- 
          Robert Claeson      E-mail: rclaeson@erbe.se
	  ERBE DATA AB

richard@aiai.ed.ac.uk (Richard Tobin) (01/18/90)

In article <DW31DR7xds13@ficc.uu.net> peter@ficc.uu.net (Peter da Silva) writes:
>Wouldn't it be nice if there was a sanctioned P1003 subset that replaced
>fork() with a combined fork()/exec() call (spawn?). 

No, it would just encourage people to use brain-dead systems.  The less
software runs on them, the sooner we'll be rid of them.

-- Richard
-- 
Richard Tobin,                       JANET: R.Tobin@uk.ac.ed             
AI Applications Institute,           ARPA:  R.Tobin%uk.ac.ed@nsfnet-relay.ac.uk
Edinburgh University.                UUCP:  ...!ukc!ed.ac.uk!R.Tobin