[Python-ideas] Porting os.fork to Windows?

Sturla Molden sturla at molden.no
Wed Feb 18 11:11:37 CET 2009


On 2/17/2009 11:28 PM, Christian Heimes wrote:

 > The code implements fork() on top of the NT API, not the Win32 API.

The tcsh code implements fork on top of the Win32 API like Cygwin.


 > fork() is an efficient and fast op on Unix systems like Linux and BSD,
 > because it uses a technique called copy on write (cow). I couldn't
 > find any information if NT uses cow, too.

NT's fork (in the SUA subsystem on Vista) is copy-on-write optimized. It 
uses ZwCreateProcess in ntdll.dll to produce a copy-on-write clone of a 
process. But that is besides the point.

The fork() in tcsh does not do copy-on-write optimization, not does 
Cygwin's fork(). There is nothing that mandates that fork() must be 
implemented with copy-on-write. The raison d'etre for pthreads was the 
non-cow fork() implementation in Solaris. Linux originally had a non-cow 
fork too. Albeit slower, this version of fork is still useful.


S.M.





More information about the Python-ideas mailing list