Our fork
implementation is nontrivial.
To do: hard numbers. Microbenchmarks?
Windows / Cygwin
http://www.redhat.com/support/wpapers/cygnus/cygnus_cygwin/architecture.html
In particular, 5.6. Process Creation.
http://archive.gamedev.net/community/forums/topic.asp?topic_id=360290
http://cygwin.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/how-cygheap-works.txt?cvsroot=src
Cygwin has recently adopted something called the "cygwin heap". This is an internal heap that is inherited by forked/execed children. It consists of process specific information that should be inherited. So things like the file descriptor table, the current working directory, and the chroot value live there.