En un sentido general, una biblioteca de sistema es un depósito de datos utilizados por los sistemas operativos o el software de aplicación durante la operación o compilación.
Las bibliotecas del sistema contienen subrutinas y funciones de uso común. Con respecto a la programación, las bibliotecas almacenan clases comunes para trabajar con gráficos, matrices, diálogos y más.
El concepto de biblioteca de sistema es aplicable tanto a programas individuales como a sistemas operativos en su conjunto, y esto se aplica a familias de Windows, UNIX y Mac.
La definición de "biblioteca" apareció por primera vez en 1951 en el libro de M. Wilkes, D. Wheeler y S. Gill "Programación para máquinas calculadoras electrónicas"
De acuerdo con el principio de funcionamiento, las bibliotecas del sistema se dividen en dinámicas y estáticas.
Bibliotecas dinámicas
Las bibliotecas de vínculos dinámicos son un componente que se carga en la memoria cuando lo solicita un programa en ejecución. Por lo tanto, no es necesario copiar el código de la subrutina en cada aplicación; las funciones más comunes se almacenan como una biblioteca.
Además, la biblioteca cargada en la RAM puede ser utilizada simultáneamente por varias aplicaciones, lo que ahorra recursos del sistema. Esto fue especialmente cierto en los primeros días de la informática.
Los archivos de biblioteca de vínculos dinámicos en Windows OC tienen la extensión.dll (biblioteca de vínculos dinámicos) y se almacenan en el directorio system32. Los componentes similares en sistemas similares a UNIX se denominan objetos compartidos y tienen la extensión.so, en Mac OS -.dlyb.
Maurice Wilkes et al. Daron la siguiente definición a una biblioteca: un programa corto y preparado previamente para operaciones computacionales individuales que se encuentran con frecuencia (estándar).
No fue posible obtener todas las ventajas de un enfoque modular para la ejecución del programa. Esto se debe al fenómeno conocido como DLL Hell, en el que el programa solicita simultáneamente diferentes versiones de la misma biblioteca (DLL). Esto conduce a fallas y reduce la confiabilidad del sistema operativo.
En los sistemas operativos modernos de la familia Windows, para evitar conflictos, se permite el uso de diferentes versiones de bibliotecas, lo que aumenta la confiabilidad, pero contradice el principio mismo de modularidad.
Bibliotecas estáticas
Las bibliotecas estáticas también almacenan códigos de funciones y subrutinas, pero a diferencia de las dinámicas, se utilizan al compilar programas. Es decir, todo el código requerido está incluido en el programa. La aplicación se vuelve autónoma, independiente de las bibliotecas dinámicas, pero crece en tamaño.
Como regla general, en Windows, los archivos de dichas bibliotecas tienen la extensión.lib, en sistemas similares a UNIX:.a.
Trabajar con la mayoría de los lenguajes compilados, por ejemplo, C, C ++, Pascal, es imposible sin bibliotecas estáticas.