Într-un sens general, o bibliotecă de sistem este un depozit de date utilizate de sistemele de operare sau de aplicațiile software în timpul funcționării sau compilării.
Bibliotecile de sistem conțin subrutine și funcții utilizate în mod obișnuit. În ceea ce privește programarea, bibliotecile stochează clase obișnuite pentru lucrul cu grafică, tablouri, dialoguri și multe altele.
Conceptul de bibliotecă de sistem este aplicabil atât programelor individuale, cât și sistemelor de operare în ansamblu, iar acest lucru se aplică atât familiilor Windows, UNIX și Mac.
Definiția „bibliotecii” a apărut pentru prima dată în 1951 în cartea lui M. Wilkes, D. Wheeler și S. Gill „Programare pentru mașini electronice de calcul”
Conform principiului de funcționare, bibliotecile de sistem sunt împărțite în dinamice și statice.
Biblioteci dinamice
Bibliotecile de legături dinamice sunt o componentă care este încărcată în memorie atunci când este solicitată de un program care rulează. Astfel, nu este nevoie să copiați codul subrutinei în fiecare aplicație - cele mai comune funcții sunt stocate ca bibliotecă.
În plus, biblioteca încărcată în RAM poate fi utilizată simultan de mai multe aplicații, ceea ce economisește resursele sistemului. Acest lucru a fost valabil mai ales în primele zile ale computerului.
Fișierele Dynamic Link Library din Windows OC au extensia.dll (Dynamic Link Library) și sunt stocate în directorul system32. Componente similare în sistemele de tip UNIX sunt numite obiecte partajate și au extensia.so, în Mac OS -.dlyb.
Maurice Wilkes și colab. Au dat următoarea definiție unei biblioteci - un program scurt, pre-pregătit pentru operații de calcul individuale, întâlnite frecvent (standard).
Nu a fost posibil să se obțină toate avantajele unei abordări modulare a execuției programului. Acest lucru se datorează fenomenului cunoscut sub numele de DLL hell, în care programul solicită simultan diferite versiuni ale aceleiași biblioteci (DLL). Acest lucru duce la erori și fiabilitate redusă a sistemului de operare.
În sistemele de operare moderne ale familiei Windows, pentru a evita conflictele, este permisă utilizarea diferitelor versiuni de biblioteci, ceea ce crește fiabilitatea, dar contrazice însăși principiul modularității.
Biblioteci statice
Bibliotecile statice stochează, de asemenea, coduri de subrutină și funcții, dar spre deosebire de cele dinamice, acestea sunt utilizate la compilarea programelor. Adică, întregul cod necesar este inclus în program. Aplicația devine independentă, independentă de bibliotecile dinamice, dar crește în dimensiune.
De regulă, pe Windows, fișierele unor astfel de biblioteci au extensia.lib, pe sisteme de tip UNIX -.a.
Lucrul cu majoritatea limbajelor compilate, de exemplu, C, C ++, Pascal, este imposibil fără biblioteci statice.