DLL- The Dynamic Link Library
The DLL or dynamic link library is not just made up of Dll files. There are a number of other file extensions, which are classified as Dll files even though they may not look like it when you first see them. OCX files are also common for DLL’s that contain activex controls, DRV for legacy system driers, PE for portable executable files on the 32 bit and NE for the 16 windows files. DLL’s can contain everything from code, to data, to resources or any combination of the three.
In addition, it is possible for any data file that contains the same file format to be considered a resource DLL so icon libraries, font files, even graphics files can be considered resource files.
Originally, the dynamic link library files were created as a way of saving disk and memory space for the windows operating system and windows based applications by sharing the files between multiple programs. This helped to allow the windows operating system to work on computers that did not have a large amount of memory, in other words the dinosaurs that predate the current level of computing technology.
Under the Win32 platforms of which Windows XP and Vista belong the dynamic library files are organized into sections within the computer files. Each one of these sections has its own sets of attributes. These attributes are writable, read only, executable, or non-executable depending on the type of file and its purpose.
The code that is within a dynamic link library file is shared with all of the programs, applications and processes that have a need to use that set of code. Instead of being constantly repeated in every application and process, they are stored in a centralized location to be called up when needed. It does not take up space within the page file and as soon as the code section has been the memory, it used is reclaimed by the system. This process occurs every time the call function for that file is activated. Data sections however are private code.
Each process has a copy of the dynamic library file though it is possible to share this information between processes and applications. It is usually not advisable to share private Dynamic library files since it can cause corruptions in other processes. It is however possible and is used in some cases where it is necessary to share the data.