In algemene zin is een systeembibliotheek een opslagplaats van gegevens die worden gebruikt door besturingssystemen of toepassingssoftware tijdens de werking of compilatie.
Systeembibliotheken bevatten veelgebruikte subroutines en functies. Met betrekking tot programmeren slaan bibliotheken algemene klassen op voor het werken met afbeeldingen, arrays, dialoogvensters en meer.
Het concept van een systeembibliotheek is zowel van toepassing op afzonderlijke programma's als op besturingssystemen als geheel, en dit geldt voor families van zowel Windows, UNIX als Mac.
De definitie van "bibliotheek" verscheen voor het eerst in 1951 in het boek van M. Wilkes, D. Wheeler en S. Gill "Programming for Electronic Calculating Machines"
Volgens het werkingsprincipe zijn systeembibliotheken onderverdeeld in dynamisch en statisch.
Dynamische bibliotheken
Dynamic Link-bibliotheken zijn een onderdeel dat in het geheugen wordt geladen wanneer een actief programma daarom vraagt. Het is dus niet nodig om de subroutinecode naar elke toepassing te kopiëren - de meest voorkomende functies worden opgeslagen als een bibliotheek.
Bovendien kan de bibliotheek die in het RAM is geladen, tegelijkertijd door verschillende toepassingen worden gebruikt, wat systeembronnen bespaart. Dit was vooral het geval in de begindagen van de computer.
Dynamic Link Library-bestanden in Windows OC hebben de extensie.dll (Dynamic Link Library) en worden opgeslagen in de directory system32. Soortgelijke componenten in UNIX-achtige systemen worden gedeelde objecten genoemd en hebben de extensie.so, in Mac OS -.dlyb.
Maurice Wilkes et al. gaven de volgende definitie aan een bibliotheek - een kort, vooraf voorbereid programma voor individuele, vaak voorkomende (standaard) computerbewerkingen.
Het was niet mogelijk om alle voordelen van een modulaire benadering van programma-uitvoering te verkrijgen. Dit komt door het fenomeen dat bekend staat als DLL-hel, waarbij het programma tegelijkertijd verschillende versies van dezelfde bibliotheek (DLL) opvraagt. Dit leidt tot storingen en verminderde betrouwbaarheid van het besturingssysteem.
In moderne besturingssystemen van de Windows-familie is het gebruik van verschillende versies van bibliotheken toegestaan, om conflicten te voorkomen, wat de betrouwbaarheid verhoogt, maar in tegenspraak is met het principe van modulariteit.
Statische bibliotheken
Statische bibliotheken slaan ook subroutine- en functiecodes op, maar in tegenstelling tot dynamische bibliotheken worden ze gebruikt bij het compileren van programma's. Dat wil zeggen dat de volledige vereiste code in het programma is opgenomen. De applicatie wordt standalone, onafhankelijk van dynamische bibliotheken, maar groeit in omvang.
In Windows hebben bestanden van dergelijke bibliotheken in de regel de extensie.lib, op UNIX-achtige systemen -.a.
Werken met de meeste gecompileerde talen, bijvoorbeeld C, C ++, Pascal, is onmogelijk zonder statische bibliotheken.