Es habitual, en los debates de Internet en torno al sistema operativo Linux, encontrarnos con algún participante que salte, de pronto, sentenciando «¡No digáis Linux! ¡Decid GNU/Linux!».
Técnicamente es una reclamación correcta: siendo precisos, ‘Linux’ es únicamente el kernel del sistema, mientras que el resto de componentes básicos de cualquier distribución ‘Linux’ se compone del ecosistema de aplicaciones desarrolladas por el proyecto GNU, en muchos casos con anterioridad al lanzamiento del kernel creado por Linus Torvalds.
Así, ‘GNU/Linux’ sería la única forma de englobar todos los componentes básicos que lo convierten en un sistema operativo completo: todos nuestros dispositivos Android, por ejemplo, usan una versión modificada del kernel de Linux. Pero ¿y si un sistema basado en dicho kernel se pareciera enormemente a lo que entendemos por un GNU/Linux sin hacer uso de las herramientas GNU? Más aún, ¿y si sus paquetes de software se generasen sin recurrir a la GNU toolchain?
Precisamente eso es Alpine Linux: una distribución Linux ultraligera y orientada a la seguridad, cuyo software se compila usando Musl en lugar de la biblioteca C de GNU (Libc), y que sustituye las herramientas GNU por Busybox, un único ejecutable capaz de emular el funcionamiento de todas ellas.
Minimalismo que no excluye un amplio catálogo de software
No hay en esta sustitución masiva ningún posicionamiento ideológico contra los posicionamientos del proyecto GNU (por radicales que puedan resultar y por polémico que sea su fundador), sino una motivación estrictamente técnica: permite crear sistemas funcionales y eficiente en muchísimo menos espacio que la configuración GNU/Linux, lo que facilita su uso en dispositivos embebidos (una categoría en la que entran, por ejemplo, los cortafuegos y VPN físicos, y los routers).
Según reza su web: «un contenedor no requiere más de 8 MB y una instalación mínima en disco requiere alrededor de 130 MB de almacenamiento».
Y es que Alpine no sólo es posible instalarla como sistema principal de nuestra computadora o ejecutarla en el WSL de Windows, sino que gran parte de su popularidad deriva de su creciente uso en máquinas virtuales o contenedores Docker, muy usados estos últimos para ejecutar entornos de desarrollo y ejecución de aplicaciones, portables y aislados del sistema principal.
La selección de paquetes binarios está más atomizada que lo habitual en otros sistemas Linux (es decir, software que suele distribuirse en un mismo paquete, en Alpine tiende a subdividirse en paquetes más pequeños) lo que nos «brinda aún más control sobre lo que instala, lo que a su vez mantiene su entorno lo más pequeño y eficiente posible».
Pero eso no significa que su catálogo de software no sea también amplísimo (sí, es posible, aunque opcional, instalar las herramientas GNU), ni que software pesado como los principales entornos de escritorio (KDE, GNOME…) estén fuera del alcance de los usuarios de Alpine. Para administrar el software Alpine recurre a su propio gestor de paquetes: APK.
Seguridad basada en la sencillez
Otro de los factores que diferencia a Alpine Linux de la mayoría de distribuciones es su renuncia a utilizar el sistema de init conocido como systemd. Este software fue adoptado masivamente hace 7 años, pero mantiene núcleos de oposición numantinos (como Void Linux, distribución de origen español también basada en Musl, aunque no en BusyBox) que añade complejidad innecesaria al sistema operativo, y que viola la filosofía Unix de «haz una cosa y hazla bien». Por eso, Alpine recurre en su lugar a OpenRC.
Decíamos antes que Alpine Linux hacía hincapié en la seguridad en mente: Así, sus binarios se compilan como ejecutables independientes de posición (PIE), lo que los protege frente a vulnerabilidades ‘stack smashing’; además, su kernel está reforzado con el parche grsecurity / PAX, y el sistema cuenta con una política de seguridad por diseño que deshabilita las configuraciones más problemáticas de manera predeterminada.