Un archivo de objeto compartido, identificado por la extensión .so, es una biblioteca de enlace dinámico utilizada principalmente en Linux y otros sistemas operativos tipo Unix. A diferencia de las bibliotecas estáticas, que se enlazan a un programa en tiempo de compilación, los objetos compartidos se cargan en la memoria en tiempo de ejecución cuando el programa es ejecutado. Esto permite que múltiples programas compartan el mismo código de biblioteca, reduciendo el tamaño total de los ejecutables y ahorrando espacio en disco. Además, los objetos compartidos pueden actualizarse independientemente de los programas que los utilizan, lo que permite implementar correcciones de errores y mejoras de características sin necesidad de recompilar las aplicaciones dependientes. El enlazador dinámico, típicamente ld-linux.so, es responsable de resolver las dependencias y cargar los objetos compartidos necesarios en el espacio de direcciones del programa. Los objetos compartidos contienen código compilado, datos e información de reubicación que permite al enlazador dinámico posicionar correctamente el código y los datos en la memoria. Son un componente fundamental del sistema Linux, proporcionando una forma modular y eficiente de gestionar la reutilización de código y las dependencias.