Rozmiar: 8938 bajtów


DLL Hell



#REDIRECT DLL hell

DLL hell



DLL hell is a colorful term given to any problem based on a difficulty in managing ''Library (computer science)#Dynamic linking'' (DLLs) installed on a particular copy of an operating system. This includes conflicts between various versions of these libraries, difficulty in obtaining a large number of such libraries, and/or having many unnecessary copies of different versions (which can cause both disk space and performance problems). DLL hell is an example of an anti-pattern — that is, a bad programming practice which should be avoided in well-written software. ==The problem== Generally, the concept of DLLs means that many Application software can share the same DLL file. However, in many cases, applications may introduce a changed version of a particular DLL which is already present on a system, either overwriting the old copy (which can, in turn, break compatibility with other applications), or install another copy, wasting Hard disk space, Random access memory space, and slowing program load times because it takes more time to locate the right DLL among many. As time goes by, the DLL hell problem becomes worse, since the software that Installation (computer programs) the unnecessary DLLs is unlikely to remove them when uninstalled (as other applications may or may not now need them). This could eventually cause a chaos of thousands of mysterious DLL files, some of which are necessary for the system to function normally, while others are just wasting space, and with no way to distinguish between them. ==Occurrence== DLL hell as described above was a very common phenomenon on early releases of Microsoft Windows systems, as they had limited facilities for managing system files and libraries (and existing programs often disregarded the facilities that did exist). Other systems, while not immune to the problem, are not known for the widespread occurrence of DLL hell seen with the pre-Microsoft .NET framework versions of Windows. Pre-Mac OS X versions of Apple Computer's Mac OS suffered from analogous (but technologically different) problems known as extension conflicts. ==Avoidance measures== There are several measures known to avoid DLL hell, which have to be used simultaneously for optimal results: * Ship the operating system with a capable package management system that would be able to track the DLL dependencies. Declare that the use of the package manager is a good thing, and performing manual installs is a bad idea. * Have a central authority for distributing the library. Changes to the library can be submitted to this authority; thus, it can make sure compatibility is preserved in the developed branches. If some older software is incompatible with the current library, the authority can provide a compatibility interface for it, or bundle the old version as a distinct package. * If software developers need to customize a library, and if the main library release is unlikely to incorporate the changes that they need, they can use static linking against their own version, or create a new package (with a different name) for the library. * Proper software design is paramount. DLLs are best for modularizing the system's components and as third-party libraries; their usage is not imperative in all cases. For example, if an application needs a library that won't be used anywhere else, they can be linked statically, with no space penalty and with a speed gain. == DLL hell as a motive for .NET == Around 2001, Microsoft introduced the Microsoft .NET framework to introduce their own version of a package deployment system, called ''assemblies'' (see external reference below). This framework also provided support for a common library runtime (essentially moving much .DLL code to a base foundation class). This concept, along with file versioning, is often seen as one of the last operating system constructs that had failed to bridge the gap between OpenVMS and Windows NT, which shared a common operating system architect, Dave Cutler. ==External links== * [http://www.desaware.com/tech/dllhell.aspx DLL Hell: The Inside Story] * [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/dplywithnet.asp Simplifying Deployment and Solving DLL Hell with the .NET Framework] * [http://dependencywalker.com/ Dependency Walker] ''Compare:'' Dependency hell System software Anti-patterns Operating system technology

DLL hell



There isn't all that much information in the deleted paragraphs. The first deleted paragraph boils down to: # GNOME installs a lot of stuff # Linux suffers from "header-hell" Neither one of these statements says very much. The second deleted paragraph actually does have a little bit of information. # Should be called so-hell on Linux (conversational fluff) # Using a package manager helps (redundant with the avoidance methods list) # libc version incompatibilities (could serve as an example, if rewritten) # Open source lets you recompile (not really relevant) The initial reason for evaluating the value of those paragraphs was a complaint on Wikipedia:Pages_needing_attention#Computer_science,_Computing_and_Internet about the page going off on tangents. --User:Cyrius 00:16, 28 Dec 2003 (UTC) ---- Feels kind of wasteful to get rid of all that information on Linux libraries. Why not put it in a new article with mutual links? --User:Cprompt 08:41, 25 Dec 2003 (UTC) ==Hyphen== I'm missing the reasoning for the hyphen in "DLL-hell" as opposed to "DLL Hell" or "DLL hell", and would appreciate others' input. Since, to my knowledge, the hyphen's most common use is to combine multiple words into a single adjective, I find it very jarring to read text which uses the hyphenated form to describe a place. User:Ventura 19:03, 2004 Jul 29 (UTC) :I think I'd agree. In fact, I'm going to move the page right now, and see if anyone can give me a good reason to move it back. - User:IMSoP 14:17, 16 Jan 2005 (UTC) ==Category:Windows== Why is this in :Category:Windows? It implies that this phenomenon is Windows-specific, but any operating system that supports dynamically loaded libraries can suffer "DLL hell," including Linux. I'm removing the category. --User:Ardonik 03:44, 2004 Aug 6 (UTC) == Windows as the origin of the term == I'm hesitant to just add this straight in, since there has already been discussion about the fact that DLL hell itself ''isn't'' Windows specific, but I'm thinking that the ''name'' probably is. As in, although DLL is just an acronym for "Dynamincally Linked Library", it is only commonly used because this is how ''MS Windows'' refers to files of this type - their file extension is ".dll", and they are commonly known by that term. And, as the article does mention, Windows is particularly infamous for this problem. So would it be worth making clear in the article that while the ''phenomenon'' can occur on any OS, with whatever kinds of libraries are around, the ''term'' comes from its occurrence on Windows, with "DLL files"? - User:IMSoP 14:49, 16 Jan 2005 (UTC) == DLL Hell and Unix == To what extent do popular unix variants (e.g. Solaris and Linux) suffer from DLL Hell? User:Funkyj 19:15, 2005 May 27 (UTC) == Mac OS X comment == Under avoidance measures; "Use an alternate operating system which does not have dependance on DLLs such as Mac OS X" Is this necessary? The avoidance measures section seems aimed more toward developing a DLL-based system that avoids the problems of DLL Hell. The OS X comment, to me, seems more like a snide bit of OS preaching than anything else. Should it be removed? --User:Ajudd 09:39, 5 Jun 2005 (PDT) I think so. I love Mac OS X, but the comment is really off-topic. I'm going to remove it. --User:Charles Steinman 09:59, 5 Jun 2005 (PDT)

Dll hell



#REDIRECT DLL hell


See other meanings of words starting from letter:

D

DA | DB | DC | DE | DF | DG | DH | DI | DJ | DK | DL | DM | DN | DO | DP | DR | DS | DT | DU | DW | DX | DY | DZ |

Words begining with Dll_hell:

DLL-hell
DLL-hell
DLL_Hell
DLL_hell
DLL_hell
Dll_hell


These materials are based on Wikipedia and licensed under the GNU FDL

Untitled Document
Linki sponsorowane Tani hosting Pozycjonowanie


YouTube.com videos better site than Turbo Tax 2007
encyklopedia online