This is the mail archive of the cygwin 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: ps questions


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 <corinna-cygwin@cygwin.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

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat

Attachment: pgptK2dbJiKYm.pgp
Description: PGP signature


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