Qué es:
* Código reutilizable: Piense en ello como una caja de herramientas de funciones preescritas, rutinas y estructuras de datos a las que pueden acceder diferentes programas sin ser copiados en el archivo ejecutable de cada programa.
* enlace dinámico: Las bibliotecas compartidas se cargan en la memoria solo cuando un programa las necesita, en lugar de estar vínculos estábicamente en el archivo ejecutable del programa en el momento de la compilación. Esto hace que los programas sean más pequeños y rápidos de cargar.
* Eficiencia: Las bibliotecas compartidas ahorran espacio en el disco y en la memoria porque solo se cargan una vez, incluso si varios programas los usan. Las actualizaciones de la biblioteca compartida también son más fáciles de administrar porque solo la biblioteca debe actualizarse, no todos los programas que la usan.
Cómo funciona:
1. Compilación: Cuando compila un programa, el compilador vincula el programa con las bibliotecas compartidas necesarias. No incorpora el código de la biblioteca en el ejecutable, sino que almacena referencias a la biblioteca.
2. tiempo de ejecución: Cuando ejecuta el programa, el sistema operativo carga dinámicamente la biblioteca compartida en la memoria. El programa puede acceder a las funciones y recursos proporcionados por la biblioteca.
3. Múltiples programas: Múltiples programas pueden usar la misma biblioteca compartida simultáneamente. El sistema operativo gestiona el acceso a los recursos de la biblioteca para evitar conflictos.
Por qué es útil:
* Reutilización del código: Las bibliotecas compartidas promueven la reutilización del código, reduciendo el tiempo y el esfuerzo de desarrollo.
* Modularidad: Permiten que los programas se dividan en componentes más pequeños y manejables, lo que los hace más fáciles de desarrollar y mantener.
* Eficiencia de recursos: Como se mencionó, ahorran espacio y memoria al reducir la duplicación de código.
* Actualizaciones fáciles: La actualización de las bibliotecas compartidas afecta a todos los programas que los usan, simplificando el mantenimiento y las actualizaciones.
Ejemplos:
* libc.so: La biblioteca estándar C es una biblioteca compartida central utilizada por casi todos los programas de Linux.
* libstdc ++. Entonces: La biblioteca estándar C ++, esencial para los programas C ++.
* libx11.so: Se utiliza para los gráficos y visualización del sistema de ventana X.
* libgtk-3.so: Para el Kit de herramientas de interfaz de usuario GTK+ GTK+.
Consideraciones importantes:
* Dependencia del infierno: Las dependencias de la biblioteca compartida pueden conducir a problemas de compatibilidad si diferentes programas necesitan diferentes versiones. Los gerentes de paquetes como APT o YUM ayudan a administrar estas dependencias.
* Versión: Las bibliotecas compartidas a menudo tienen números de versión para garantizar la compatibilidad.
* Ubicaciones de la biblioteca: Las bibliotecas compartidas generalmente residen en los directorios `/lib` o`/usr/lib`.
Comprender las bibliotecas compartidas es crucial para trabajar con los sistemas Linux, ya que son un componente fundamental de cómo las aplicaciones interactúan con el sistema operativo y entre sí.