Librerías compartidas en Linux: una introducción

Las librerías compartidas en Linux consisten en archivos individuales que contienen una lista de funciones. Este conjunto suele recibir el nombre de API (Application Programmable Interface) y está disponible para cualquier programa que lo necesite. De esta manera, no hace falta volver a escribir las funciones en cuestión para cada uno de ellos. Vale la pena aclarar que varios programas pueden acceder a una librería compartida al mismo tiempo. Por otro lado, si una librería dada no está disponible, cualquier programa que la necesite no podrá funcionar.

Librerías compartidas en Linux

Para empezar, en Linux las librerías compartidas aparecen en forma de archivos .so (de shared objects, u objetos compartidos). Tradicionalmente, las hemos podido encontrar en los siguientes directorios:

  • /lib: librerías esenciales para el funcionamiento del sistema.
  • /lib64: igual que para el anterior, para sistemas de 64 bits.

Sin embargo, en distribuciones modernas que utilizan systemd /lib y /lib64 son en realidad enlaces simbólicos a /usr/lib y /usr/lib64, respectivamente. En estos directorios también encontramos las librerías de programas de usuario. Si bien son importantes, estas últimas no son críticas para la operación del sistema.

 Veamos ahora cómo averiguar cuáles son las librerías de las que depende un programa determinado. Por ejemplo, utilicemos a top como ejemplo. El siguiente comando nos proveerá la información que estamos buscando, como vemos en la Fig. 1. A la izquierda vemos la lista de librerías, y a la derecha la ubicación del archivo .so correspondiente.

ldd /usr/bin/top
Las librerías compartidas en Linux
Figura 1 – Las librerías compartidas en Linux

A la derecha, entre paréntesis también podemos apreciar la dirección de memoria en la que está cargada cada librería. La primer línea (linux-vdso.so.1) no indica ninguna ubicación en disco debido a que se trata de una librería residente en el kernel. Se la conoce con el nombre de virtual dynamic shared object.

Espero que este post les haya resultado útil. ¡No se pierdan el próximo para aprender más sobre el tema!

Te invitamos a conocer la propuesta completa de Carrera Linux Argentina para convertirte en un experto y completo sysadmin desde cero. En nuestro sitio web Aprender Linux podrás encontrar más detalles y contactarnos si te surgen preguntas o dudas. ¡Esperamos tu consulta!