Source : Free On-Line Dictionary of Computing
Dynamically Linked Library
(DLL) A {library} which is linked to {application
programs} when they are loaded or run rather than as the final
phase of {compilation}. This means that the same block of
library code can be shared between several {tasks} rather than
each task containing copies of the routines it uses. The
executable is compiled with a library of "{stubs}" which allow
{link errors} to be detected at {compile-time}. Then, at {run
time}, either the system {loader} or the task's entry code
must arrange for library calls to be patched with the
addresses of the real shared library routines, possibly via a
{jump table}.
The alternative is to make library calls part of the
{operating system} {kernel} and enter them via some kind of
{trap} instruction. This is generally less efficient than an
ordinary {subroutine} call.
It is important to ensure that the version of a dynamically
linked library is compatible with what the executable expects.
Examples of operating systems using dynamic linking are
{SunOS} (.so - shared object files), {Microsoft Windows}
(.dll) and {RISC OS} on the {Acorn} {Archimedes} (relocatable
modules).
(1995-12-12)