A file containing compiled object code which can be shared between multiple programs. For example, there are lots of programs that connect to the Internet. The code for doing the connections is in only one shared library file, instead of being duplicated over and over in each program that needs it (thus saving hard drive space), and only one copy is loaded into active memory (thus saving RAM). This also has the advantage that if fixes or improvements are made to the Internet code, all you have to do is replace that one shared library file, and all the programs will get the benefits, rather than having to replace each individual program.

Under Windows, shared library files end in ."DLL", which stands for "Dynamically Linked Library". Under UNIX/Linux, such files almost always start with "lib", always end in ".so" (standing for "shared object"), which is followed by ".X.Y.Z", where X.Y.Z is the version of the .so file; for instance, libproc.so.2.0.9 is the 2.0.9 version of the proc library (a file ending in ".so" with no version number is the default version of the file). This allows multiple versions of the same library to be installed, which is good since different programs might use different versions of the library; you generally can't do this on a Windows system, leading to the problem of DLL Hell.

Under UNIX/Linux the ld.so program controls how libraries are searched for and which ones are loaded.

Log in or register to write something here or to contact authors.