U općenitom smislu, sistemska knjižnica je spremište podataka koje koriste operativni sistemi ili aplikativni softver tokom rada ili kompilacije.
Sistemske biblioteke sadrže uobičajene potprograme i funkcije. Što se tiče programiranja, biblioteke čuvaju uobičajene klase za rad s grafikom, nizovima, dijalozima i još mnogo toga.
Koncept sistemske biblioteke primjenjiv je na pojedinačne programe i na operativne sisteme u cjelini, a to se odnosi na porodice Windows-a, UNIX-a i Mac-a.
Definicija "biblioteka" prvi put se pojavila 1951. godine u knjizi M. Wilkesa, D. Wheelera i S. Gilla "Programiranje za elektroničke računske mašine"
Prema principu rada, sistemske se biblioteke dijele na dinamičke i statičke.
Dinamičke biblioteke
Biblioteke dinamičkih veza komponenta je koja se učitava u memoriju na zahtjev programa koji se izvodi. Stoga nema potrebe za kopiranjem koda potprograma u svaku aplikaciju - najčešće funkcije pohranjuju se kao biblioteka.
Pored toga, biblioteku učitanu u RAM može istovremeno koristiti nekoliko aplikacija, što štedi sistemske resurse. To je bilo posebno tačno u ranim danima računarstva.
Datoteke Dynamic Link Library u Windows OC imaju ekstenziju.dll (Dynamic Link Library) i pohranjene su u direktorijum system32. Slične komponente u sistemima sličnim UNIX-u nazivaju se dijeljeni objekti i imaju ekstenziju.so, u Mac OS -.dlyb.
Maurice Wilkes i suradnici Dali su sljedeću definiciju biblioteci - kratkom, unaprijed pripremljenom programu 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 modernim operativnim sistemima porodice Windows, kako bi se izbjegli sukobi, dozvoljena je upotreba različitih verzija biblioteka, što povećava pouzdanost, ali u suprotnosti sa samim principom modularnosti.
Statičke biblioteke
Statičke biblioteke takođe čuvaju potprograme i funkcijske kodove, ali za razliku od dinamičkih, koriste se prilikom kompajliranja programa. Odnosno, čitav potreban kod uključen je u program. Aplikacija postaje samostalna, neovisna o dinamičkim bibliotekama, ali raste u veličini.
Po pravilu, na Windowsima datoteke takvih biblioteka imaju ekstenziju.lib, na sistemima sličnim UNIX-u -.a.
Rad sa većinom kompajliranih jezika, na primjer, C, C ++, Pascal, nemoguć je bez statičnih biblioteka.