🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.std.unix
Article #728

Re: qfork() (again)

#728
From: Dominic Dunlop
Date: Thu, 31 Jan 1991 10:05
40 lines
2373 bytes
Submitted-by: domo@tsa.co.uk (Dominic Dunlop)

In article <17402@cs.utexas.edu> michael@CS.UCLA.EDU (michael gersten) writes:
> May I humbly ask what was wrong with vfork?

Yup.  I'll humbly try to answer.
> 
> As I understand it, vfork's semantics was a virtual fork--
> conceptually two execution threads would return from the call,
> and they may or may not be sharing data space--any program
> that relied on one or the other was by definition broken.

The problem -- one problem -- is in coming up with a ``portable''
definition of ``data space''.  On what we currently assume to be
``vanilla flavour'' architectures such as that of the 68000 which you
cite, it's fairly obvious.  But on others, it's not.  What about
registers?  Are they data space?  No?  Even on architectures with
register windows which may or may not map onto main memory addresses?
Bear in mind that such exotica are not so exotic any more: RISCs use
them widely.

It seems that any definition which is safe on all architectures is
liable to constrain what one may do between [qv]fork() and exec() so
greatly that it turns out to be better to define a combined spwan()
function.  This would make it less likely that the POSIX standards would
contain explicit or implicit assumptions about the architecture of the
hardware on which a conforming implementation runs.  While this might be
nice for aging architectures such as that of (say) the Unisys 1100
series, more importantly, it would not constrain architectural
advances of the future needlessly to conform to the nineteen
seventies' ideas of what was a ``clean machine'' in order to be able
efficiently to implement POSIX interfaces.

> Now, why was it removed? What is wrong with it?

-- see also comp.std.unix Volume 22, Number 69.
-- 
Dominic Dunlop

Volume-Number: Volume 22, Number 93
Technical Details
Message-ID: <17527@cs.utexas.edu>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!jsq
References: <16992@cs.utexas.edu> <17010@cs.utexas.edu> <17402@cs.utexas.edu>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!jsq
From: domo@tsa.co.uk (Dominic Dunlop)
Newsgroups: comp.std.unix
Subject: Re: qfork() (again)
Message-ID: <17527@cs.utexas.edu>
Date: 31 Jan 91 10:05:36 GMT
References: <16992@cs.utexas.edu> <17010@cs.utexas.edu> <17402@cs.utexas.edu>
Sender: jsq@cs.utexas.edu
Reply-To: domo@tsa.co.uk
Organization: The Standard Answer Ltd.
Lines: 40
Approved: jsq@cs.utexas.edu (Moderator, John S. Quarterman)
X-Submissions: std-unix@uunet.uu.net