Dans un sens général, une bibliothèque système est un référentiel de données utilisées par les systèmes d'exploitation ou les logiciels d'application lors de l'exploitation ou de la compilation.
Les bibliothèques système contiennent des sous-routines et des fonctions couramment utilisées. En ce qui concerne la programmation, les bibliothèques stockent des classes communes pour travailler avec des graphiques, des tableaux, des boîtes de dialogue, etc.
Le concept de bibliothèque système s'applique à la fois aux programmes individuels et aux systèmes d'exploitation dans leur ensemble, et cela s'applique aux familles Windows, UNIX et Mac.
La définition de "bibliothèque" est apparue pour la première fois en 1951 dans le livre de M. Wilkes, D. Wheeler et S. Gill "Programming for Electronic Calculating Machines"
Selon le principe de fonctionnement, les bibliothèques système sont divisées en dynamique et statique.
Bibliothèques dynamiques
Les bibliothèques de liens dynamiques sont un composant qui est chargé en mémoire à la demande d'un programme en cours d'exécution. Ainsi, il n'est pas nécessaire de copier le code du sous-programme dans chaque application - les fonctions les plus courantes sont stockées sous forme de bibliothèque.
De plus, la librairie chargée en RAM peut être utilisée simultanément par plusieurs applications, ce qui économise les ressources système. C'était particulièrement vrai au début de l'informatique.
Les fichiers Dynamic Link Library dans Windows OC ont l'extension.dll (Dynamic Link Library) et sont stockés dans le répertoire system32. Les composants similaires dans les systèmes de type UNIX sont appelés objets partagés et portent l'extension.so, dans Mac OS -.dlyb.
Maurice Wilkes et autres ont donné la définition suivante à une bibliothèque - un programme court et pré-préparé pour des opérations de calcul individuelles fréquemment rencontrées (standard).
Il n'a pas été possible d'obtenir tous les avantages d'une approche modulaire de l'exécution des programmes. Cela est dû au phénomène connu sous le nom de DLL hell, dans lequel le programme demande simultanément différentes versions de la même bibliothèque (DLL). Cela conduit à des défaillances et à une fiabilité réduite du système d'exploitation.
Dans les systèmes d'exploitation modernes de la famille Windows, afin d'éviter les conflits, l'utilisation de différentes versions de bibliothèques est autorisée, ce qui augmente la fiabilité, mais contredit le principe même de modularité.
Bibliothèques statiques
Les bibliothèques statiques stockent également les codes de sous-programme et de fonction, mais contrairement aux bibliothèques dynamiques, elles sont utilisées lors de la compilation de programmes. C'est-à-dire que tout le code requis est inclus dans le programme. L'application devient autonome, indépendante des bibliothèques dynamiques, mais sa taille augmente.
En règle générale, sous Windows, les fichiers de ces bibliothèques ont l'extension.lib, sur les systèmes de type UNIX -.a.
Travailler avec la plupart des langages compilés, par exemple C, C ++, Pascal, est impossible sans bibliothèques statiques.