Un archivo de objeto compartido, típicamente con la extensión .so, es una librería enlazada dinámicamente utilizada en Linux y otros sistemas operativos tipo Unix. A diferencia de las librerías estáticas, que se enlazan a un programa en tiempo de compilación, los objetos compartidos se cargan en memoria en tiempo de ejecución cuando se ejecuta el programa. Esto permite que múltiples programas compartan el mismo código de librería, reduciendo el tamaño general de los ejecutables y conservando recursos del sistema. Los objetos compartidos son esenciales para el desarrollo de software modular, permitiendo a los desarrolladores crear componentes reutilizables que pueden actualizarse y mantenerse independientemente de las aplicaciones que los utilizan. Son una parte fundamental del sistema Linux, proporcionando un mecanismo para la reutilización de código y la gestión eficiente de la memoria. El proceso de enlazado dinámico es manejado por el enlazador/cargador dinámico (dynamic linker/loader), que resuelve dependencias y carga los objetos compartidos necesarios en el espacio de direcciones del programa. Las actualizaciones a los objetos compartidos pueden implementarse sin recompilar las aplicaciones que dependen de ellos, siempre y cuando la interfaz binaria de aplicación (ABI) permanezca compatible. Esto convierte a los objetos compartidos en un componente crucial del ecosistema Linux, facilitando las actualizaciones y el mantenimiento del software.