A SharedLibrary contains subroutines that can be linked to a BinaryExecutable at RunTime. This allows for sharing code between applications, which has a number of advantages:
- It saves on disk space, since functions common to many programs don't need to exist in identical copies in each of their binaries.
- It saves on memory for the same reason -- you only need a single copy of the SharedLibrary in memory. This also means that the memory footprint columns in ps(1) never add up correctly.
- Fixing a bug in the shared code automatically fixes that bug for all programs that use the library, without actually having to touch these programs.
- Likewise, performance or other improvements are automatically propagated to every program using a library.
See also: SharedLibraryNotes