Všeobecne je systémová knižnica úložiskom údajov používaných operačnými systémami alebo aplikačným softvérom počas prevádzky alebo kompilácie.
Systémové knižnice obsahujú bežne používané podprogramy a funkcie. Pokiaľ ide o programovanie, knižnice ukladajú bežné triedy pre prácu s grafikou, poľami, dialógmi a ďalšími.
Koncept systémovej knižnice je použiteľný tak pre jednotlivé programy, ako aj pre operačné systémy ako celok, a to platí pre rodiny Windows, UNIX aj Mac.
Definícia „knižnice“sa prvýkrát objavila v roku 1951 v knihe M. Wilkesa, D. Wheelera a S. Gilla „Programovanie pre elektronické počítacie stroje“.
Podľa princípu činnosti sú systémové knižnice rozdelené na dynamické a statické.
Dynamické knižnice
Knižnice dynamických odkazov sú komponentom, ktorý sa načíta do pamäte, keď o to požiada spustený program. Nie je teda potrebné kopírovať podprogramový kód do každej aplikácie - najbežnejšie funkcie sa ukladajú ako knižnica.
Knižnicu načítanú do RAM môže navyše používať niekoľko aplikácií súčasne, čo šetrí systémové prostriedky. Platilo to najmä v prvých dňoch práce s počítačom.
Súbory knižnice Dynamic Link vo Windows OC majú príponu.dll (Dynamic Link Library) a sú uložené v adresári system32. Podobné komponenty v systémoch podobných systému UNIX sa nazývajú zdieľané objekty a majú príponu.so, v systéme Mac OS -.dlyb.
Maurice Wilkes a kol. Dal knižnici nasledujúcu definíciu - krátky, vopred pripravený program pre individuálne, často sa vyskytujúce (štandardné) výpočtové operácie.
Nebolo možné získať všetky výhody modulárneho prístupu k vykonávaniu programu. Je to spôsobené javom známym ako DLL peklo, pri ktorom program požaduje súčasne rôzne verzie tej istej knižnice (DLL). To vedie k poruchám a zníženej spoľahlivosti OS.
V moderných operačných systémoch rodiny Windows je s cieľom vyhnúť sa konfliktom povolené použitie rôznych verzií knižníc, čo zvyšuje spoľahlivosť, ale je v rozpore so samotným princípom modulárnosti.
Statické knižnice
Statické knižnice tiež ukladajú podprogramové a funkčné kódy, ale na rozdiel od dynamických sa používajú pri kompilácii programov. To znamená, že celý požadovaný kód je zahrnutý v programe. Aplikácia sa stáva samostatnou, nezávislou od dynamických knižníc, ale rastie jej veľkosť.
Spravidla platí, že v systéme Windows majú súbory týchto knižníc príponu.lib, v systémoch podobných systému UNIX -.a.
Práca s väčšinou skompilovaných jazykov, napríklad C, C ++, Pascal, je bez statických knižníc nemožná.