Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The dynamic linker provides the dlopen API, which allows programs to explicitly load additional shared libraries at run time. This allows programs to implement plug-in functionality.
An important aspect of shared library design is controlling symbol visibility, so that the library exports only those symbols (functions and variables) that should actually be used by programs linked against the library. We looked at a range of techniques that can be used to control symbol visibility. Among these techniques was the use of version scripts, which provide fine-grained control of symbol visibility.