I en generel forstand er et systembibliotek et lager af data, der bruges af operativsystemer eller applikationssoftware under drift eller kompilering.
Systembiblioteker indeholder almindeligt anvendte underrutiner og funktioner. Med hensyn til programmering gemmer biblioteker almindelige klasser til arbejde med grafik, arrays, dialoger og mere.
Konceptet med et systembibliotek gælder både for individuelle programmer og for operativsystemer som helhed, og dette gælder for familier af både Windows, UNIX og Mac.
Definitionen af "bibliotek" dukkede først op i 1951 i bogen af M. Wilkes, D. Wheeler og S. Gill "Programmering til elektroniske beregningsmaskiner"
I henhold til driftsprincippet er systembiblioteker opdelt i dynamisk og statisk.
Dynamiske biblioteker
Dynamiske linkbiblioteker er en komponent, der indlæses i hukommelsen, når et kørende program anmoder om det. Der er således ikke behov for at kopiere underrutinkoden til hver applikation - de mest almindelige funktioner er gemt som et bibliotek.
Derudover kan biblioteket, der er indlæst i RAM, bruges samtidigt af flere applikationer, hvilket sparer systemressourcer. Dette var især tilfældet i de tidlige dage af computing.
Dynamic Link Library-filer i Windows OC har filtypenavnet.dll (Dynamic Link Library) og er gemt i system32-biblioteket. Lignende komponenter i UNIX-lignende systemer kaldes delte objekter og har udvidelsen.so i Mac OS -.dlyb.
Maurice Wilkes et al. Gav følgende definition til et bibliotek - et kort, forberedt program til individuelle, ofte stødte (standard) beregningsoperationer.
Det var ikke muligt at opnå alle fordelene ved en modulær tilgang til programudførelse. Dette skyldes fænomenet kendt som DLL-helvede, hvor programmet samtidigt anmoder om forskellige versioner af det samme bibliotek (DLL). Dette fører til fejl og reduceret operativsystemets pålidelighed.
I moderne operativsystemer i Windows-familien er brugen af forskellige versioner af biblioteker tilladt for at undgå konflikter, hvilket øger pålideligheden, men modsiger selve modulprincippet.
Statiske biblioteker
Statiske biblioteker gemmer også underrutiner og funktionskoder, men i modsætning til dynamiske bruges de ved kompilering af programmer. Det vil sige, at hele den krævede kode er inkluderet i programmet. Applikationen bliver uafhængig af dynamiske biblioteker, men vokser i størrelse.
Som regel på Windows har filer fra sådanne biblioteker.lib-udvidelsen på UNIX-lignende systemer -.a.
At arbejde med de fleste kompilerede sprog, for eksempel C, C ++, Pascal, er umuligt uden statiske biblioteker.