Subject: Re: fork2
From: [email-masked] (Jason Zions)

15 Nov 1997 11:52:47 -0800
Message-ID: <[email-masked]>
References: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: root <[email-masked]>
Cc: Alex <[email-masked]>, [email-masked]

> There is no free lunch. If you want only NT, you will have to accept that
> fork() is NOT there.

Or you could use OpenNT from Softway Systems which gives you a real,
honest, fully-conforming, fork(). Not to mention the rest of POSIX.1,
POSIX.2, sockets, shared memory, semaphores, ttys and ptys, X11, etc.
that Unix programs and programmers expect.

> fork() can only be implemented at the OS level. NT could do it easily since
> it could just modify the working set of the new process to point to the newly
> allocated pages instead of pointing to the old ones. But, for whatever
> reasons, Microsoft has decided not to implement fork().

Yes, they did (though not by that name). They didn't expose it through
Win32, and Win32 itself knows nothing from fork semantics so it wouldn't
help if you did call fork() from a Win32 process. Fork() is a
well-defined concept for programs based on POSIX and similar API
paradigms; every "Unix-like" object has defined behavior with respect to
fork(). File handles get duped, fcntl locks get handled like *this*,
shared memory gets handled like *that*, etc. No Win32 object has defined
semantics w.r.t. a fork() operation.

> When I use Windows, I accept that fork() is not there, as well as many other
> Unix features.

That's a shame. You can have both; you just need the right technology.

Jason Zions
Softway Systems
http://www.opennt.com
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".