This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: OT: possible project/research project


On Wed, Mar 20, 2002 at 06:04:44PM +1100, Robert Collins wrote:
>In fact cgf has had a copy-on-write fork() for cygwin in alpha-quality
>IIRC. I'd love to do some perf tests with that, and in fact on my todo
>list is cygwin profiling. Time however, is the killer.

This keeps coming up.  Maybe it should be added to the FAQ.

The copy-on-write semantics available in the Windows API are not
adequate for fork.  copy-on-write doesn't work right on 9x/Me and, even
on NT, there is no way, AFAICT, to allow something like process a forks
process b, which forks process c.  In that scenario process c needs to
have a copy of process b's memory, not process a's.  That is not
possible to do, AFAICT, without actually copying memory, which defeats
the purpose.

This is all with Win32 APIs.  It may be possible to do something with
NT-specific code, as Robert mentioned, but I ran into problems even
there, too.

If people are under the impression that we haven't given fork
performance a lot of thought, they're wrong.  *I* could be wrong (and
would be thrilled to be wrong) but I don't think that improving fork
performance is an afternoon's work for some skilled programmer.

As far as the one shell for all proposal, there are already a few of
these things kicking around.  They're used for linux boot disks where
it is more advantageous to have one large executable with lots of
builtin functionality rather than one shell with lots of programs.

I sincerely doubt that I would ever be convinced to allow something
like this into the cygwin distribution.  It seems like it flys in the
face of cygwin's goal and would just be YA thing to confuse people.

cgf
--
Please do not send me personal email with cygwin questions.
Use the resources at http://cygwin.com/ .

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]