Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin-developers AT sourceware DOT cygnus DOT com From: Matt X-Sender: matt AT cesium DOT clock DOT org To: "Parker, Ron" cc: "'cygwin-developers AT sourceware DOT cygnus DOT com'" Subject: Re: Known DLLS (Was: Mo Dejong's install problems) In-Reply-To: <20000331192811Z2919-28337+5@cesium.clock.org> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Date: Fri, 31 Mar 2000 15:38:21 -0800 On Fri, 31 Mar 2000, Parker, Ron wrote: > > -----Original Message----- > > From: Mumit Khan [mailto:khan AT NanoTech DOT Wisc DOT EDU] > > > > A long time ago, I added Cygwin dll to the "Known DLLs" list, > > but I don't > > remember if I saw any significant improvements. > > > > FWIW, Microsoft added a new "feature" to "Known DLLs" with Windows 2000. If > a file is listed as a "Known DLL" nothing may replace it short of an > operating system service pack. If you try replacing it, success will be > reported but nothing will be changed. Microsoft will re-replace it with a > cached copy that you cannot modify. IMO, this was done to prevent something > like Windows 2000-lite, once and forever proving that IE is a necessary part > of the OS. I also love having two copies of 2000+ files on my machine. KnownDLLs was actually also in NT 4.0. It basically preloads common shared DLLs so that when processes start up that use them, they will use the ones already mapped into memory. Because they are prelaoded, startup times are reduced. You can look at the KnownDLLs list in the Object Manager namespace using http://www.sysinternals.com/winobj.zip . What you are referring to in Win2k is "system File Protection". What it does it prevents non-signed DLLs from overwriting known good DLLs in specified protected directories, and prevents what some people have referred to as "DLL Hell". This happens when a retarded app (like Netscape) installs the MFC42.DLL redistributable from VC++ 4.2 over your good, y2k compliant, stable one from Service Pack 6. You can, in fact, configure win2k to not care and to accept such behaviour. This is a very good thing. I would suggest reading up on it on msdn.microsoft.com before passing any more judgement. What KnownDLLs means to cygwin is that if the cygwin DLL is replaced, it will not be remapped into memory until the next reboot. Whether this disadvantage outweighs the advantage of faster startup times is questionable.