X-Recipient: archive-cygwin@delorie.com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
	:list-unsubscribe:list-subscribe:list-archive:list-post
	:list-help:sender:date:from:to:subject:message-id:reply-to
	:references:mime-version:content-type:in-reply-to; q=dns; s=
	default; b=BwUm9WHrqQGUz4C7S17wpCy2A+daRZHB/fubRjU5M5CWYbNT4OnWp
	08DKCJB3NiVLTeFAsc7ZTMRw9bSZiS1+aDUjVBIFiTOlmSh5pb4RXS8ngiBzGWA9
	DDeFseIqxCj2s/EVnLEkKFHXbkvDPPXrLH6HVcKUhMsAgeIcyyJqqc=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
	:list-unsubscribe:list-subscribe:list-archive:list-post
	:list-help:sender:date:from:to:subject:message-id:reply-to
	:references:mime-version:content-type:in-reply-to; s=default;
	 bh=e7/2j7DC9mT9I9ikL53LQnv9aG4=; b=Cz0xymba4ZQ/bH03WsyW0Apub9kB
	ByleIfQJaJ1osLXfgQszZgc++zPLzk1W1L6XDr1MAUcecE8dRXeDBN7vhxPlvrhz
	MLPNU5JVWbQ3PxOQJydsJBUE7xfpZWsjYpRchOVGcH8gFO2iF6OezrSZQwkZsADR
	1tNOrew/Q8fUBCI=
Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe@cygwin.com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin@cygwin.com>
List-Help: <mailto:cygwin-help@cygwin.com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
Delivered-To: mailing list cygwin@cygwin.com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=-5.9 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2
X-HELO: calimero.vinschen.de
Date: Thu, 18 Dec 2014 20:04:17 +0100
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin@cygwin.com
Subject: Re: ps questions
Message-ID: <20141218190417.GK10824@calimero.vinschen.de>
Reply-To: cygwin@cygwin.com
Mail-Followup-To: cygwin@cygwin.com
References: <CAO2ddnZChb-n9+Z1YEWCFSA=WTaYfkmHdjMZk7Te5JYckUDE+Q@mail.gmail.com> <5492EDFC.5080608@gmail.com> <CAO2ddnZHs=4GxUJtjgoyTXO2Or3oKzY6Rck=m9Mqfj6DgWUQUg@mail.gmail.com> <20141218171116.GF10824@calimero.vinschen.de> <8F8B22BA-B007-4F10-9B4F-9BD963D17059@etr-usa.com> <20141218173346.GH10824@calimero.vinschen.de> <71891584-9B1C-430D-9A15-8EC385EB3F3F@etr-usa.com> <20141218185114.GJ10824@calimero.vinschen.de>
MIME-Version: 1.0
Content-Type: multipart/signed; micalg=pgp-sha1;	protocol="application/pgp-signature"; boundary="CFO0SFgG+t1lcV5s"
Content-Disposition: inline
In-Reply-To: <20141218185114.GJ10824@calimero.vinschen.de>
User-Agent: Mutt/1.5.23 (2014-03-12)

--CFO0SFgG+t1lcV5s
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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.c=
om> wrote:
> >=20
> > > On Dec 18 10:26, Warren Young wrote:
> > >>=20
> > >> ...Cygwin doesn=E2=80=99t do something similar?
> > >=20
> > > Cygwin isn't a kernel and the process
> > > information is kept in shared memory regions held by the parent proce=
ss
> > > and the process itself.  This model has limitations you don't have on=
 a
> > > real kernel.
> >=20
> > I=E2=80=99m aware of that, but can=E2=80=99t 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:
>=20
> 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

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

--CFO0SFgG+t1lcV5s
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJUkyUwAAoJEPU2Bp2uRE+gJhYP/izrbFejK27ym8uW1UCHduWI
bWUNPTq78BZ5L1mBGyoPl9rpnwL2dC/mSZbZ5SqhuEIKPNTCxz8pI9/o79tXeRje
m6GbnT/uZPm+w9qRWsHzJzm6wh+bllt5bPujXA+zYUZn9AjbU6wh3Rig8Gz6UVKT
U3pyPIihTsjdDMwtOLcQWg4Uwwrj79TX83QKpuzNhRHQg/sLeHMoeOZGddqIy2cG
0UZUMHox4KDpxWBrZHZO3q1G9M6wdVxdHidCy6sAQaOuhnwgUTkFuTlBrp+mBCc9
chu63kVB3dWJeAL8RIxk2RHVAWKB8Hj2WxS7FpzqadbEPFzn1UKdBW5gyU+g2qOp
GXUVL5NpCrKx22Wz/9tNOmGIGkzrdz4YY8Ip2HsVbn4fV6Xko10XiDuH/RJbGCmu
PtID54u/J/AFMq9YdC/6plpra5nf9aaelHvtlJEoudZnQ8t9LC7WX3R72irRt2kW
FU/gObFaCXzVHumaX0Sc5LgfD8cbCxrchAAc0hr9b5tABqOMjWfkRU72lxgMDQRr
Egea+g24zd2SMqMfDuc1DWui2R9i2kZrcyN50QolhjpqzOPm4zPUh21gjMDklRtu
Qib4P5JiZUqBoNXnmT26GqYh3K8aJ5Lhd3q80Oq2+M6zFCrB+dbrjMHDB9V8mRen
gjEJNfXR/h6CvTd8idzr
=TKRf
-----END PGP SIGNATURE-----

--CFO0SFgG+t1lcV5s--
