The following thread was started on Windows Desktop Development Forums but seems to have become stalled there since mid April:
I was not the originator of that prior discussion, but I am keenly interested in the problem posed there, and in and any possible answer to it. My hope is that, by cross-posting the thread here, the topic will be revived and receive the attention I think it deserves from the Microsoft interop community.
The short version is this:
Red Hat's Corinna Vinschen, one of the leads on the Cygwin project, posted a question aimed at improving Cygwin's implementation of fork, and in particular asking if the relatively new RtlCloneUserProcess function (which on first blush seems like an ideal candidate for this) could be made to work correctly in the Win32 subsystem (or if, failing that, there is some alternative method that would at least avoid the memory layout and DLL rebasing problems that come up with the current Cygwin emulation of the POSIX fork on Win32).
There are a bunch of good reasons to keep this particular discussion topic alive:
1) The apparent deprecation (and, as of Win8, abandonment) of the the SUA POSIX subsystem, leaving Cygwin as 'the only game in town'.
2) Cygwin's unique role as the only real alternative for interoperability with Unix-style processes whilst running in the Win32 subsystem with full access to that system.
3) The fact that the POSIX fork implementation is, in Corinna Vinshen's words, "our biggest all-time problem in Cygwin" and, beyond that, a leading source of difficulty for developers trying to achieve interoperability for software originally build around the POSIX architecture (witness the fork emulation layer in Perl on Win32).
That said, it really seems that the only way to keep making progress on this would be for the 'right' technical people inside Microsoft to be made aware of the issue, get interested in it, and get involved in its solution. I understand there are likely business considerations here as well, that may constrain what can be shared. But if there is any possibility of Corinna's question getting in front of engineers who might be willing to help her work out a better solution, then this seems like the best place to find that out.
This forum is for software developers who are using the Open Protocol Specification documentation to assist them in developing systems, services, and applications that are interoperable with Windows. The Open Protocol Specifications can be found at: http://msdn2.microsoft.com/en-us/library/cc203350.aspx.The original question you are quoting seems to have been posting in the correct forum.
Thanks and regards,
SEBASTIAN CANEVARI - MSFT Escalation Engineer Protocol Documentation Team
- Marked as answer by Sebastian CanevariMicrosoft employee, Moderator Saturday, May 26, 2012 3:47 PM