I allmänhet är ett systembibliotek ett arkiv med data som används av operativsystem eller applikationsprogramvara under drift eller kompilering.
Systembibliotek innehåller vanliga underrutiner och funktioner. När det gäller programmering lagrar bibliotek vanliga klasser för att arbeta med grafik, matriser, dialoger och mer.
Konceptet med ett systembibliotek är tillämpligt både på enskilda program och på operativsystem som helhet, och detta gäller familjer av både Windows, UNIX och Mac.
Definitionen av "bibliotek" uppträdde först 1951 i boken av M. Wilkes, D. Wheeler och S. Gill "Programmering för elektroniska beräkningsmaskiner"
Enligt driftsprincipen är systembiblioteken uppdelade i dynamiska och statiska.
Dynamiska bibliotek
Dynamiska länkbibliotek är en komponent som laddas i minnet på begäran av ett pågående program. Det finns alltså inget behov av att kopiera subrutinkoden till varje applikation - de vanligaste funktionerna lagras som ett bibliotek.
Dessutom kan biblioteket laddat i RAM användas samtidigt av flera applikationer, vilket sparar systemresurser. Detta var särskilt sant under de tidiga datorerna.
Dynamic Link Library-filer i Windows OC har tillägget.dll (Dynamic Link Library) och lagras i system32-katalogen. Liknande komponenter i UNIX-liknande system kallas delade objekt och har tillägget.so, i Mac OS -.dlyb.
Maurice Wilkes et al. Gav följande definition till ett bibliotek - ett kort, förberedt program för enskilda, ofta påträffade (standard) beräkningsoperationer.
Det var inte möjligt att få alla fördelarna med ett modulärt tillvägagångssätt för programkörning. Detta beror på fenomenet som kallas DLL-helvete, där programmet samtidigt begär olika versioner av samma bibliotek (DLL). Detta leder till misslyckanden och minskad tillförlitlighet för operativsystemet.
I moderna operativsystem i Windows-familjen är det tillåtet att använda olika versioner av bibliotek för att undvika konflikter, vilket ökar tillförlitligheten, men strider mot själva modularitetsprincipen.
Statiska bibliotek
Statiska bibliotek lagrar också subrutiner och funktionskoder, men till skillnad från dynamiska används de när de kompilerar program. Det vill säga hela koden som krävs ingår i programmet. Applikationen blir fristående, oberoende av dynamiska bibliotek, men växer i storlek.
I Windows har filer i sådana bibliotek som regel filändelsen.lib på UNIX-liknande system -.a.
Att arbeta med de flesta sammanställda språk, till exempel C, C ++, Pascal, är omöjligt utan statiska bibliotek.