75.4.1. Knihovny

                  .---> Static
                 /
Linux libraries <
                 \                .---> Dynamic linking
                  \              /
                   `---> Shared <
                                 \
                                  `---> Dynamic loading
  Staticky spojované (linking) programy
+-----------------+  +-----------------+
|    Program X    |  |    Program Y    |
|-----------------|  |-----------------|
|Statické knihovny|  |Statické knihovny|
|      (*.a)      |  |      (*.a)      |
+-----------------+  +-----------------+

  Dynamicky spojované programy
+-----------------+  +-----------------+
|    Program X    |  |    Program Y    |
+-----------------+  +-----------------+
          +-----------------+
          |Sdílené knihovny |
          |      (*.so)     |
          +-----------------+

V případě statického spojování programu s knihovnami se spojování provádí v době překladu programu. Knihovna je součástí binárního souboru programu.

V případě dynamického spojování není knihovna součástí programu. V programu je jen seznam symbolů (proměnných a funkcí) které jsou definovány v knihovně. Při zavádění programu do paměti počítače zavaděčem tento vyhledá knihovnu a spojí symboly v programu s funkcemi a proměnnými v knihovně. Pokud je knihovna již v paměti, nemusí se zavádět znova. Všechny běžící programy tak sdílí jeden kód knihovny v paměti počítače.