From: rdparker AT butlermfg DOT org (Parker, Ron) Subject: RE: Crazy fork idea 3 Apr 1998 15:30:40 -0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="---- =_NextPart_000_01BD5F23.9038FD70" To: Larry Hall , "cgf AT bbc 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--