Is COW ability of fork important enough with modern memory and operating
systems, to maintain two significantly different code paths for spawning
children processes?
Background:
One of the things I would like to do on the Simple MPM is unify how
child processes are created on win32 and unix.
On Win32, there is no fork, so roughly speaking what the current winnt
MPM creates a new process, and feeds the configuration over a pipe to
the new child.
On Unix, all of the current MPMs use fork, and do not execute a new
process, but instead then drop privileges and continue running.
What I would like to do, is change Unix to use the same pattern as on
Windows.
Doing this could also solves some issues with on some platforms[2].
It is common on most unix platforms for fork() to use copy on write[1]
for memory pages.
This means when spawning a child it uses much less 'real' memory,
compared to spawning a completely new process.
[1] - http://en.wikipedia.org/wiki/Copy-on-write
[2] - https://trac.macports.org/ticket/16340