U općenitom smislu, sistemska knjižnica je spremište podataka koje operativni sustavi ili aplikacijski softver koriste tijekom rada ili kompilacije.
Knjižnice sustava sadrže uobičajene potprograme i funkcije. Što se tiče programiranja, knjižnice pohranjuju uobičajene klase za rad s grafikom, nizovima, dijaloškim okvirima i još mnogo toga.
Koncept sistemske knjižnice primjenjiv je kako na pojedinačne programe, tako i na operativne sustave u cjelini, a to se odnosi na obitelji Windows, UNIX i Mac.
Definicija "knjižnica" prvi se put pojavila 1951. u knjizi M. Wilkesa, D. Wheelera i S. Gilla "Programiranje za elektroničke računske strojeve"
Prema principu rada, sistemske se knjižnice dijele na dinamičke i statičke.
Dinamičke knjižnice
Biblioteke dinamičkih veza komponenta je koja se učitava u memoriju na zahtjev programa koji se izvodi. Dakle, nema potrebe za kopiranjem koda potprograma u svaku aplikaciju - najčešće funkcije pohranjuju se kao knjižnica.
Uz to, biblioteku učitanu u RAM može istovremeno koristiti nekoliko aplikacija, što štedi sistemske resurse. To se posebno odnosilo na rane dane računanja.
Datoteke Dynamic Link Library u sustavu Windows OC imaju nastavak.dll (Dynamic Link Library) i pohranjene su u direktoriju system32. Slične komponente u sustavima sličnim UNIX-u nazivaju se dijeljenim objektima i imaju ekstenziju.so, u Mac OS-u -.dlyb.
Maurice Wilkes i suradnici Dali su sljedeću definiciju knjižnici - kratki, unaprijed pripremljeni program za pojedinačne računske operacije koje se često susreću (standardne).
Nije bilo moguće dobiti sve prednosti modularnog pristupa izvršavanju programa. To je zbog fenomena poznatog kao DLL pakao, u kojem program istovremeno zahtijeva različite verzije iste biblioteke (DLL). To dovodi do kvarova i smanjene pouzdanosti OS-a.
U suvremenim operativnim sustavima obitelji Windows, kako bi se izbjegli sukobi, dopuštena je uporaba različitih verzija knjižnica, što povećava pouzdanost, ali proturječi samom principu modularnosti.
Statične knjižnice
Statičke knjižnice također pohranjuju potprograme i funkcijske kodove, ali za razliku od dinamičkih, koriste se prilikom sastavljanja programa. Odnosno, u program je uključen čitav potreban kod. Aplikacija postaje samostalna, neovisna o dinamičkim knjižnicama, ali raste u veličini.
U pravilu, na Windowsima datoteke takvih knjižnica imaju ekstenziju.lib, na sustavima sličnim UNIX-u -.a.
Rad sa većinom kompajliranih jezika, na primjer, C, C ++, Pascal, nemoguć je bez statičnih knjižnica.