Hoy voy a aprovechar la ocasión para presentar a uno de los sistemas operativos inmutables para escritorio más prometedores del panorama de Linux: Aeon Desktop. Antes llamado openSUSE Aeon, se basa en Tumbleweed, del que hereda su naturaleza rolling release y bleeding edge.
Debido a su naturaleza bleeding edge, Aeon Desktop es un sistema operativo que suministra un software muy reciente y que frente a otros sistemas como Silverblue tiene la ventaja de evitar los lanzamientos puntuales, por lo que el usuario tiene a su disposición un soporte indefinido en el tiempo y sobre el papel no debería reinstalar nunca el sistema operativo.
En lo que respecta a sus características básicas, Aeon Desktop sigue en esencia el mismo paradigma que los escritorios atómicos de Fedora y VanillaOS, con un sistema de ficheros que es de solo lectura en un buen porcentaje, un sistema de actualizaciones atómicas que garantiza el completado de dicho proceso, un mecanismo que permite hacer rollback y recuperar un estado anterior del sistema y separación de las aplicaciones del sistema mediante Podman, Distrobox o Toolbx y Flatpak. La combinación de esos factores tiene como objetivo mejorar la resiliencia del sistema ante un error, reduciendo así las probabilidades de que quede inutilizado.
A pesar de las similitudes conceptuales con otros sistemas inmutables, Aeon se beneficia de la experiencia de SUSE y openSUSE en este terreno, y frente a los escritorios atómicos de Fedora, sobresale por ser mucho más ortodoxo. Por ejemplo, Firefox es servido en formato RPM en los escritorios atómicos de Fedora y forma parte de la imagen base, por lo que no puede ser eliminado, mientras que en Aeon es descargado en formato Flatpak desde Flathub y desde el primer momento se fomenta el tener las aplicaciones en dicho formato siempre que sea posible, pero hay excepciones como drivers del kernel, firmware y ciertos componentes que forzosamente deben ser instalados a nivel de la raíz.
Otro punto punto de Aeon es que el sistema base está bastante reducido, o sea, que apenas hay paquetes preinstalados en términos relativos. Esto es para facilitar el mantenimiento e invitar al usuario a apoyar todo su flujo de uso en contenedores y Flatpak. De hecho, la mayoría de mis herramientas de consola y los pocos compiladores que uso en la actualidad están metidos en un contenedor de Distrobox basado en Tumbleweed. Este enfoque, unido al uso de ciertos paquetes compilados para x86_64-v3, da como resultado un sistema que se siente bastante ágil al menos comparado con otros similares.
Debido a que Aeon Desktop todavía se encuentra en fase de candidata de lanzamiento (RC), es posible que haya cosas que cambien de cara al futuro, sobre todo en lo que respecta al tratamiento del cifrado de disco. Sin embargo, el resto de los cimientos ya están establecidos y dudo mucho que vayan a sufrir profundas modificaciones de aquí a su lanzamiento estable.
Aeon Desktop abarca mucho más, pero eso lo veremos a través de los siguientes apartados para resaltar los aspectos más importantes de este sistema.
Instalador TIK y el cifrado obligatorio
Si se obtiene Aeon Desktop a través de su medio oficial y no de MicroOS, el usuario se va a encontrar con un proceso bastante simplificado que resulta rápido de realizar, pero que a la vez es poco personalizable. Sin embargo, es cierto que las posibilidades de personalización se ven limitadas por las tecnologías empleadas por el ecosistema de sistemas operativos inmutables de SUSE y openSUSE.
En el instalador de Aeon, TIK (Transactional Installation Kit), básicamente hay dos pasos: el primero consiste en el borrado de la unidad de almacenamiento o de una de las unidades de almacenamiento para formatearla e instalar el sistema operativo. El sistema de ficheros, debido al uso de Snapper, debe ser obligatoriamente Btrfs, porque sino no se podrían realizar instantáneas ni hacer uso del mecanismo de rollback.
El segundo paso es el cifrado de disco, que en este caso es obligatorio. El usuario puede delegar el descifrado de manera automática a través de TPM o puede inhabilitar TPM para establecer una contraseña que debe escribir en el arranque. Además, el usuario tendrá a su disposición una clave de recuperación que será generada.
Es importante instalar Aeon Desktop desde su medio oficial, ya que este hace que esté mejor preconfigurado al tener swap sobre ZRAM, que en este caso ocupa el 100% de la RAM, y la compresión ZSTD para al menos reducir el tamaño ocupado por los ficheros cuando el sistema está recién instalado.
Otro detalle a tener en cuenta es que Aeon Desktop utiliza systemd-boot como gestor de arranque, por lo que requiere de una máquina que utilice UEFI como firmware y no es compatible con legacy BIOS. MicroOS sí soporta legacy BIOS, pero instalar Aeon desde ahí da como resultado un sistema peor preconfigurado.
transactional-update y Snapper, el mecanismo de actualización y la base de la recuperación
Es común encontrarse con el uso de un sistema de actualizaciones atómicas en los sistemas operativos inmutables de este tipo, y en este caso el utilizado es transactional-update, el desarrollado por la propia openSUSE.
Según la descripción disponible en su propio repositorio de GitHub, “transaccional-update proporciona una aplicación y una biblioteca para actualizar un sistema operativo Linux de forma transaccional, es decir, la actualización se realizará en segundo plano mientras el sistema continúa ejecutándose como está. Sólo si la actualización fue exitosa en su conjunto, el sistema se iniciará con la nueva instantánea”.
“Es posible que esté familiarizado con el término ‘transacción’ en el contexto de una transacción de base de datos clásica: solo si todos los cambios individuales en las tablas de la base de datos se pudieron aplicar con éxito, entonces un COMMIT final los activará; de lo contrario, un ROLLBACK simplemente descartará todo nuevamente”.
Una característica de transactional-update es que cuenta con una shell propia que permite romper la innmutabilidad (sudo transactional-update shell
), pero los responsables de Aeon recomiendan no utilizar esta vía, la cual tampoco garantiza que los resultados sean permanentes frente a las actualizaciones que van llegando. Dicho de otra manera, que las modificaciones realizadas por el usuario pueden acabar revertidas o machacadas por las actualizaciones. Cada vez que se salga de la shell de transactional-update con el comando
exit
, se generará una nueva instantánea a partir de la que está en ejecución.
Las actualizaciones se realizan en frío, o sea, que los cambios no se aplican hasta que se reinicia la computadora, lo que da como resultado, junto a otros factores que mencionaré más adelante, un sistema operativo que proporciona un flujo de trabajo sin interrupciones, ya que se evita el conflicto de las versiones de los binarios y las cargadas en RAM de las bibliotecas que se producen en las actualizaciones en caliente.
Por otro lado, también está Snapper, que se encarga de gestionar las instantáneas de Btrfs que hay presentes en el sistema y a las que se puede acceder desde systemd-boot, el gestor de arranque. Las instantáneas de Btrfs no solo permiten retroceder a estados anteriores del sistema, sino también a configuraciones previas ubicadas en el directorio /etc
, lo que abre todavía más posibilidades a nivel de retroceso.
Aeon Desktop es capaz de almacenar una gran cantidad de instantáneas, ofreciendo así todavía más resortes y posibilidades para recuperar el sistema base en caso de que alguna actualización haya ido mal y esté dando problemas, pero con el coste de ocupar más espacio en disco.
Timers de systemd, la base del mantenimiento desatendido
Una de las principales características de Aeon Desktop es que su mantenimiento resulta desatendido. Para ello se apoya en buena medida en los timers de systemd, mediante los cuales se programan las actualizaciones y la gestión de las instantáneas para que se hagan de forma automática y sin necesidad de intervención por parte del usuario (al menos en un principio).
De todos los timers, posiblemente el más interesante sea el de transactional-update, que se encarga de poner en funcionamiento el mecanismo de actualizaciones. Por defecto la actualización se realiza entre las 0:00 horas y las 2:00 horas, pero si la computadora ha estado apagada durante ese tiempo, el proceso se realiza durante las dos primeras horas en las que la computadora está encendida. Aquí la cosa resulta un tanto aleatoria y el usuario puede ver la notificación de actualización diez minutos después de encender la computadora o tras pasar las dos horas.
Como ya he dicho, las actualizaciones se realizan en frío, así que los cambios no se aplican mientras no se reinicia. Básicamente uno puede encender la computadora, emplearla sin interrupciones durante todo el día y luego apagarla por la noche, haciendo así que el sistema esté siempre al día a la vez que no se interrumpe el flujo de trabajo.
Podman y Distrobox, trasladando el trabajo a los contenedores
Que los contenedores sean una parte importante de estos sistemas inmtuables es algo conocido a estas alturas, si bien nada impide utilizar estas mismas tecnologías en un sistema mutable, y además funcionando de la misma manera.
Podman es la conocida alternativa a Docker, compatible con los contenedores de este, ajustado a la especificación OCI y que destaca por funcionar sin daemon, lo que en teoría mejora la seguridad. En el contexto que nos ocupa se encarga principalmente de soportar servicios y cargas de trabajo específicas.
Por otro lado está Distrobox, más orientado a soportar aplicaciones gráficas y que sobre el papel está destinado a ser la interfaz predeterminada para componentes como las herramientas de la línea de comandos y los compiladores. Aeon Desktop está configurado para crear de manera predeterminada un contenedor de Distrobox basado en openSUSE Tumbleweed, lo que ofrece un software consistente debido a que el primer sistema está basado en el segundo.
Sin embargo, Distrobox es un ecosistema abierto que permite crear fácilmente contenedores basados en otras distribuciones como Arch Linux, Fedora, Debian y Ubuntu, aportando así una enorme flexibilidad y la posibilidad de tener distintos entornos de trabajo dependiendo del contexto.
Al contrario de los paquetes RPM que componen el sistema base, los contenedores de Podman y Distrobox sí soportan actualizaciones en caliente.
Flatpak, la principal vía para obtener aplicaciones gráficas
Aeon Desktop es uno de los sistemas Linux que hacen un uso más intensivo de Flatpak, si no es el que más. Nada más iniciar sesión, el usuario verá una ventana de Zenity indicando que se está obteniendo Firefox y algunas aplicaciones de GNOME desde Flathub, por lo que de manera predeterminada estarán en el formato mencionado.
Es en estos sistemas donde Flatpak tiene más sentido debido a que realiza la función de separar las aplicaciones del sistema operativo, algo que casa totalmente con el concepto. En Aeon Desktop esto va un paso más allá debido a que las aplicaciones son instaladas no a nivel del sistema, sino del usuario, por lo que cada usuario tiene sus propias aplicaciones. Esto permite configurar experiencias más personalizadas, pero con el coste de ocupar mucho más espacio en disco al tener que descargar todos los runtimes para cada usuario.
Una vez más, y al contrario del sistema base, Flatpak sí soporta actualizaciones en caliente, algo normal si tenemos en cuenta que este formato de paquetes funciona de manera separada del sistema operativo. Además, el proceso de actualización se suele hacer de forma automática, reduciendo así la atención que se requiere del usuario.
GNOME, el único escritorio disponible
Si Slowroll, Leap y Tumbleweed permiten seleccionar el escritorio, esto no es así con Aeon, que solo viene con GNOME en su forma vanilla, sin modificaciones y con la sesión de Wayland establecida como la predeterminada.
Es importante tener en cuenta que Aeon no es un sistema operativo pensando para la personalización, pero es posible añadir extensiones a GNOME a través de esta aplicación en formato Flatpak, la cual se encarga de mitigar la falta de integración de las propias extensiones a través de Firefox.
Desgraciadamente Kalpa, que es el sistema hermano de Aeon que usa KDE Plasma en lugar de GNOME, acumula un retraso de más de un año en su desarrollo debido a que no hay tantas personas implicadas en él, así que por ahora no dispone de medios de instalación propios y debe ser obtenido a través de MicroOS, dando como resultado un sistema que va a requerir después de bastantes configuraciones para dejarlo igual que Aeon.
Un sistema poco amigable para ser trabajado desde la raíz y no orientado a la personalización
Uno de los objetivos de Aeon Desktop es que el sistema base sea manipulado lo mínimo posible y eso se traduce en el hecho de que no ha sido concebido para trabajar directamente desde ahí. Dicho con otras palabras, si la intención es utilizar el sistema de manera intensiva desde la raíz, lo recomendable es utilizar un sistema operativo mutable, siendo Tumbleweed la alternativa más cercana de Aeon.
La poca amigabilidad de Aeon para ser trabajado directamente desde la raíz entronca con cosas que he expuesto en este artículo, como la no recomendación de usar la shell de transactional-update o que el flujo de uso del sistema haya sido derivado a los contenedores y Flatpak, separando así las aplicaciones del sistema.
El propósito de Aeon es que el usuario lo utilice respetando su propia concepción, así que, en caso de no estar de acuerdo o no gustarle, lo recomendable es que use otro sistema operativo que se ajuste más a sus gustos o necesidades.
Cómo cambiar el hostname en Aeon Desktop
Aeon Desktop es en estos momentos un producto inacabado y no permite por ahora cambiar el nombre del host desde la configuración de GNOME, así que esto debe ser modificado mediante la línea de comandos:
sudo hostnamectl set-hostname nombredelhost
Cómo obtener el soporte para AppImage en Aeon Desktop
El fuerte enfoque de Aeon en Flatpak hace que no soporte AppImage por defecto. Por suerte, eso puede ser resuelto instalando el siguiente paquete y reiniciando el sistema:
sudo transactional-update pkg in fuse
Cómo instalar y poner en funcionamiento el cortafuegos en Aeon Desktop
Aeon Desktop viene con SELinux preconfigurado en modo impositivo, pero no preinstala ningún cortafuegos. En caso de usar el sistema en un portátil que sale mucho de casa o que el software del router no pueda ser actualizado, no vendría mal instalar un cortafuegos a nivel del sistema operativo, así que aquí tiraremos de un conocido del mundillo: firewalld.
sudo transactional-update pkg in firewalld firewall-config
Después tocar reiniciar y habilitar el servicio de firewalld:
sudo systemctl start firewalld
sudo systemctl enable firewalld
Conclusión
Aeon Desktop es todavía un producto inacabado, sin embargo, está lo suficientemente maduro como para ser considerado como uno de los mejores escritorios Linux inmutables que hay. Aquí influyen la experiencia del ecosistema SUSE en el terreno, el hecho de ser rolling release y un enfoque muy ortodoxo que da como resultado un sistema base reducido que invita al usuario a delegar su flujo de trabajo en los contenedores y Flatpak.
Veremos cuánto tiempo le toma a Aeon Desktop el ser lanzado como un producto en fase estable, pero los responsables no parecen tener mucha prisa de momento. Pese a todo, y teniendo en cuenta ciertas carencias que todavía arrastra, es una opción a tener muy en cuenta dentro de su terreno y puede cubrir las necesidades de la mayoría (o al menos la mayoría interesada en este tipo de sistemas).