Diferencia entre bibliotecas estáticas y compartidas

En programación, una biblioteca es una colección de piezas de código precompiladas que se pueden reutilizar en un programa. Las bibliotecas simplifican la vida de los programadores, ya que proporcionan funciones, rutinas, clases, estructuras de datos, etc.
, reutilizables que pueden reutilizarse en los programas.

Bibliotecas estáticas: una biblioteca estática o una biblioteca vinculada estáticamente es un conjunto de rutinas, funciones externas y variables que se resuelven en una llamada en tiempo de compilación y se copian en una aplicación de destino por un compilador, enlazador o enlazador, produciendo un archivo de objeto y un ejecutable independiente. Este ejecutable y el proceso de compilación se conocen como compilación estática del programa. Históricamente, las bibliotecas solo podían ser estáticas.
Por lo general, son más rápidos que las bibliotecas compartidas porque un conjunto de archivos de objetos de uso común se colocan en un solo archivo ejecutable de biblioteca. Se pueden crear varios ejecutables sin necesidad de volver a compilar el archivo. Debido a que es un solo archivo que se debe construir, el uso de comandos de enlace es más simple que los comandos de enlace de biblioteca compartida, porque especifica el nombre de la biblioteca estática.

Bibliotecas compartidas :
las bibliotecas compartidas son archivos .so (o en Windows .dll, o en OS X .dylib).
Estos se enlazan dinámicamente simplemente incluyendo la dirección de la biblioteca (mientras que los enlaces estáticos son una pérdida de espacio). La vinculación dinámica vincula las bibliotecas en tiempo de ejecución. Así, todas las funciones están en un lugar especial en el espacio de la memoria, y cada programa puede acceder a ellas, sin tener múltiples copias de ellas.

propiedades biblioteca estática biblioteca compartida
Tiempo de enlace Ocurre como el último paso del proceso de compilación. Después de colocar el programa en la memoria Las bibliotecas compartidas se agregan durante el proceso de vinculación cuando el archivo ejecutable y las bibliotecas se agregan a la memoria.
Medio Realizado por enlazadores Realizado por el sistema operativo
Tamaño Las bibliotecas estáticas son mucho más grandes en tamaño, porque los programas externos están integrados en el archivo ejecutable. Las bibliotecas dinámicas son mucho más pequeñas, porque solo hay una copia de la biblioteca dinámica que se guarda en la memoria.
Cambios en archivos externos El archivo ejecutable deberá volver a compilarse si se aplicaron cambios a archivos externos. En bibliotecas compartidas, no es necesario volver a compilar el ejecutable.
Tiempo Lleva más tiempo ejecutarse, porque la carga en la memoria ocurre cada vez que se ejecuta. Es más rápido porque el código de la biblioteca compartida ya está en la memoria.
Compatibilidad Nunca tiene problemas de compatibilidad, ya que todo el código está en un módulo ejecutable. Los programas dependen de tener una biblioteca compatible. El programa dependiente no funcionará si la biblioteca se elimina del sistema.

Publicación traducida automáticamente

Artículo escrito por AshishVishwakarma1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *