Thu Dec 18 19:04:00 GMT 2014
On Dec 18 19:51, Corinna Vinschen wrote:
> On Dec 18 11:40, Warren Young wrote:
> > On Dec 18, 2014, at 10:33 AM, Corinna Vinschen <email@example.com> wrote:
> > > On Dec 18 10:26, Warren Young wrote:
> > >>
> > >> ...Cygwin doesn’t do something similar?
> > >
> > > Cygwin isn't a kernel and the process
> > > information is kept in shared memory regions held by the parent process
> > > and the process itself. This model has limitations you don't have on a
> > > real kernel.
> > I’m aware of that, but can’t the DLL see both the birth and death of
> > every Cygwin process? Birth via either DllMain() or execvp(2), and
> > death via one of the methods here:
> Aren't we talking about fetching info from non-Cygwin processes?
On re-reading your question, I'm wondering if you don't have a slight
misconception. Keep in mind that the (Cygwin) DLL is not a single
entity on the system. Every process is running its own copy of the
Cygwin DLL. The communication between different Cygwin process requires
bookkeeping outside of the DLL. For instance, all Cygwin processes have
their own shared memory region constituting something akin to a process
table entry of an OS. For security reasons, access to this shared
memory is restricted via ACLs, so not every process can open the process
info region of every process.
Back to the DLL. There's one Cygwin DLL in every Cygwin process'
virtual memory. If "the Cygwin DLL" is supposed to keep track of
life and death of every Cygwin process, you're in fact asking for
*every* Cygwin process keeping track of life and death of *every*
other Cygwin process.
Again, the Cygwin DLL is no kernel, and it's no process on its own.
It's just the core part of each Cygwin process, handling bookkeeping for
itself and its child processes, and otherwise trying to communicate with
the Cygwin DLLs in other processes in good faith.
Does that clarify the situation a bit?
Corinna Vinschen Please, send mails regarding Cygwin to
Cygwin Maintainer cygwin AT cygwin DOT com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 819 bytes
Desc: not available
More information about the Cygwin