bibliotecas compartidas en Linux con las DLLs de Windows, que son esencialmente lo mismo: módulos de código reutilizable que pueden ser cargados por distintos programas.
🐧 En Linux
Las bibliotecas compartidas suelen tener extensión .so (shared object). Algunas de las más conocidas y utilizadas son:
| Biblioteca | Archivo común | Descripción |
|---|---|---|
| glibc | libc.so.6 |
Implementa las funciones básicas del sistema (entrada/salida, memoria, hilos, etc.). Es la base de casi todo en Linux. |
| libpthread | libpthread.so.0 |
Soporte para hilos POSIX (pthread_create, pthread_join, etc.). |
| libm | libm.so.6 |
Funciones matemáticas (sin, cos, sqrt, etc.). |
| libdl | libdl.so.2 |
Permite cargar dinámicamente bibliotecas en tiempo de ejecución (dlopen, dlsym). |
| libstdc++ | libstdc++.so.6 |
Biblioteca estándar de C++ (manejo de excepciones, STL, etc.). |
| libgcc | libgcc_s.so.1 |
Rutinas internas del compilador GCC (manejo de excepciones, división entera, etc.). |
| libX11 | libX11.so.6 |
Soporte para aplicaciones gráficas que usan el X Window System. |
| libssl / libcrypto | libssl.so, libcrypto.so |
Funciones criptográficas y de SSL/TLS (de OpenSSL). |
| libsystemd | libsystemd.so.0 |
Interacción con el sistema de inicio systemd. |
| libudev | libudev.so.1 |
Interacción con el subsistema de dispositivos de Linux. |
| libcairo / libgtk / libqt | Bibliotecas gráficas para entornos de escritorio (GTK, Qt, etc.). |
Puedes listar todas las bibliotecas compartidas cargadas por un programa con:
ldd /usr/bin/bash
Y todas las instaladas en el sistema (aproximadamente) con:
find /usr/lib /lib -name "*.so*" 2>/dev/null
🪟 En Windows
Las bibliotecas compartidas se llaman DLLs (Dynamic Link Libraries). Las más usadas y conocidas son:
| DLL | Descripción |
|---|---|
| kernel32.dll | Funciones básicas del sistema (manejo de archivos, memoria, procesos, sincronización). |
| user32.dll | Interfaz de usuario: ventanas, mensajes, controles, eventos. |
| gdi32.dll | Dibujado de gráficos 2D, texto y fuentes. |
| advapi32.dll | Funciones avanzadas del sistema (registro, seguridad, servicios). |
| ntdll.dll | Funciones internas del kernel de Windows (nivel más bajo del sistema). |
| ws2_32.dll | Funciones de red y sockets (Winsock). |
| ole32.dll | Soporte para OLE y COM (componentes de objetos). |
| shell32.dll | Funciones del Shell (explorador, accesos directos, rutas). |
| comdlg32.dll | Cuadros de diálogo comunes (abrir, guardar, imprimir). |
| msvcrt.dll | Biblioteca estándar de C de Microsoft (equivalente a libc). |
| ucrtbase.dll | Nueva Universal C Runtime (desde Visual Studio 2015). |
| d3d11.dll / d3d12.dll | Bibliotecas de DirectX para gráficos 3D. |
| wininet.dll / winhttp.dll | Funciones para acceso HTTP/Internet. |
| crypt32.dll | Funciones criptográficas. |
Puedes listar las DLL que un ejecutable usa con herramientas como:
dumpbin /DEPENDENTS archivo.exe
(Get-Process nombre).Modules | Select-Object ModuleName