Dynamically Linked Library

Dynamically Linked Library

(library)(DLL) A library which is linked to application programs when they are loaded or run rather than as the finalphase of compilation. This means that the same block oflibrary code can be shared between several tasks rather thaneach task containing copies of the routines it uses. Theexecutable is compiled with a library of "stubs" which allowlink errors to be detected at compile-time. Then, at run time, either the system loader or the task's entry codemust arrange for library calls to be patched with theaddresses of the real shared library routines, possibly via ajump table.

The alternative is to make library calls part of theoperating system kernel and enter them via some kind oftrap instruction. This is generally less efficient than anordinary subroutine call.

It is important to ensure that the version of a dynamicallylinked library is compatible with what the executable expects.

Examples of operating systems using dynamic linking areSunOS (.so - shared object files), Microsoft Windows(.dll) and RISC OS on the Acorn Archimedes (relocatablemodules).