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