www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/1998/04/03/15:30:40

From: rdparker AT butlermfg DOT org (Parker, Ron)
Subject: RE: Crazy fork idea
3 Apr 1998 15:30:40 -0800 :
Message-ID: <c=US%a=_%p=Butler_Manufactu%l=BUILDINGS/BLDGSHUB/00090E5C.cygnus.cygwin32.developers@nttwr2.tower.bldgs.butlermfg.org>
Mime-Version: 1.0
To: Larry Hall <lhall AT rfk DOT com>, "cgf AT bbc DOT com" <cgf AT bbc DOT com>,
"cygwin32-developers AT cygnus DOT com" <cygwin32-developers AT cygnus DOT com>

This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------ =_NextPart_000_01BD5F23.9038FD70
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

Actually the fork code is implemented in the brain-dead POSIX 
subsystem of Windows NT.  It is not built into the kernel. The POSIX 
subsystem is inaccessible from cygwin32, which runs in the Win32 
subsystem.

The APIs for implementing or replacing a subsystem are not documented. 
 Also there are some virtual memory functions at the kernel level 
which are also undocumented.

There is a replacement for the MS POSIX subsystem.  I think it is 
called OpenNT.  If you have run it, you may have noticed that its 
fork() is comparable to a modern UNIX fork.  They were able to do this 
because they have licensed, at *great* expense the source code for 
Windows NT.  As you may have guessed from all of the "hints" about 
copy-on-write (COW) on NTInternals, in various MS publications and on 
the MSDN CDs, it was used to implement their fork.

I was trying figuring out how to allocate a brand new user-level 
process.  One whose virtual memory table I could then setup for 
myself.  From the time I spent looking into COW, I believe that OpenNT 
may have used some of the undocumented kernel level process functions 
in their fork.  FYI, OpenNT did not work on NT 5.0 when I tried it.

Check out PAGE_WRITECOPY on MSDN or in the MS KnowledgeBase. 
 PAGE_WRITECOPY is available on both platforms for the VirtualXXX 
functions and the file mapping functions.

If we have to resort to undocumented NT features or NT only features, 
we still need the best fallback possible for the Win9X world.


------ =_NextPart_000_01BD5F23.9038FD70
Content-Type: application/ms-tnef
Content-Transfer-Encoding: base64

eJ8+IicXAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAEIgAcAGAAAAElQTS5NaWNy
b3NvZnQgTWFpbC5Ob3RlADEIAQmAAQAhAAAAREQ0QTI4MzI0NUNCRDExMThBQTgwMDYwMDhDNzcx
MjkA/gYBIIADAA4AAADOBwQAAwARAAsAJQAFACIBAQWAAwAOAAAAzgcEAAMAEQAMAAIABQAAAQEN
gAQAAgAAAAIAAgABBIABABQAAABSRTogQ3JhenkgZm9yayBpZGVhAH8GAQOQBgAsCQAAKwAAAAsA
AgABAAAACwArAAAAAAADAC4AAAAAAEAAOQBgSxDpVV+9AR4AcAABAAAAEAAAAENyYXp5IGZvcmsg
aWRlYQACAXEAAQAAABsAAAABvV9FQHeJl7Iyym8R0YAuCAAJ4BuBAANLkyAAAwAGEMpO/Q8DAAcQ
oQQAAB4ACBABAAAAZQAAAEFDVFVBTExZVEhFRk9SS0NPREVJU0lNUExFTUVOVEVESU5USEVCUkFJ
Ti1ERUFEUE9TSVhTVUJTWVNURU1PRldJTkRPV1NOVElUSVNOT1RCVUlMVElOVE9USEVLRVJORUxU
SEUAAAAAAwAQEAAAAAADABEQAQAAAAIBCRABAAAAbwQAAGsEAAAABwAATFpGdX6W3gEDAAoAcmNw
ZzEyNeIyA0N0ZXgFQQEDAff/CoACpAPkBxMCgA/zAFAEVj8IVQeyESUOUQMBAgBjaOEKwHNldDIG
AAbDESX2MwRGE7cwEiwRMwjvCfe2OxgfDjA1ESIMYGMAULMLCQFkMzYWUAunYwEwERDAY3R1B0Bs
eSAQdGhlIAIQcmsgWwWgAQAgBAAekG0LUGU/B4ACMAmAHpADoB3CYnIVC3EtAQBhH3BQT1MASVgg
c3Vic3kCcw6wbSBvZiBXEQuAZG93B6FULiBMIEkFQB6hbm8FQGKudQMQIsECMG8ds2sEkXRlbCKA
VB3RIL4eom79ANBjB5AAkAJgHeEDYR5ABHlnA/BuMzIsIIR3aA3gaCBydQYx7x+VIeEnsCEILgqi
CoQKgPEkwkFQSQQgHgEeyAuAXmchoAXAGCALUWMsMmGfIQkKwB3gIxIiEGN1HyTxIoFBbHMj4y4R
LgIvcLEHgCB2aQAgHWEgB4C1BGByHaBmKGAdQGkCIK0EIGEFQCQIIB8AdjLR/yf0LgIHQC9xKGAu
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
PgAAAADCNw==

------ =_NextPart_000_01BD5F23.9038FD70--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019