Statická knihovna

Statická knihovna, případně staticky linkovaná knihovna, je pojem z oboru programování, kterým se označuje knihovna, jejíž kopie je linkerem zahrnuta přímo do výsledného spustitelného souboru na pevně danou adresu. Tím se odlišuje od dynamických knihoven, které jsou ve vnější paměti uloženy odděleně a do operační paměti k němu jsou nahrávány až dynamickým linkerem při startu programu.

Výhodou staticky linkovaných knihoven je právě skutečnost, že je program má v sobě a nemusí spoléhat na to, že je v dané instanci operačního systému k dispozici jejich vhodná verze, ani na tom, že ji do něj doinstaluje. Protože program z hlediska knihoven na ničem nezávisí, nedochází tak k závislostnímu peklu. Zároveň může docházet k optimalizaci, kdy jsou k programu přilinkovány a následně nahrávány do operační paměti jen ty části knihovny, které program doopravdy využívá.

Na druhou stranu statické knihovny neumožňují aktualizace, ať už funkční, nebo bezpečnostní, nezávisle na programu: při potřebě opravit chybu v knihovně je potřeba zařídit pro každý program, který ji jako staticky linkovanou používá, aktualizaci zvlášť. A každý program, který knihovnu používá, zabírá místo ve vnější paměti její samostatnou kopií.

V běžném stolním počítači jsou obvykle široce využívány knihovny linkované dynamicky, zatímco staticky bývají linkované jen knihovny, které dodává k programu sám jeho tvůrce.

Naopak v prostředí vestavěných systémů, kde je obvykle aktualizován celý operační systém včetně programů jako celek, nepředpokládá se instalace množství programů uživateli a režie při nahrávání všech knihoven jako dynamických by při startu programů měla příliš velký vliv na výkon systémů, je statické linkování běžnější. Proto například vznikla staticky linkovaná linuxová distribuce Stali postavená na knihovně musl optimalizované právě pro statické sestavování.[1]

Reference

V tomto článku byl použit překlad textu z článku Static library na anglické Wikipedii.

  1. KOPTA, Martin. Staticky linkovaná distribuce Stali, kterou svět (zatím) neviděl. Root.cz [online]. 2014-02-17. Dostupné online. ISSN 1212-8309.