Poco antes de terminar el año 2022 fue presentado oficialmente Vanilla OS 22.10 Kinetic, un derivado de Ubuntu inmutable, que tiene un fuerte enfoque en el aislamiento y los contenedores y destaca por presentar GNOME en su implementación base, sin añadidos. En comparación con otros exponentes de la inmutabilidad orientados al escritorio como Endless, MicroOS y Silverblue/Kinoite, lo que más sobresale de Vanilla OS es su peculiar gestor de paquetes “tradicionales”: Apx.
Como ya hemos dicho, Vanilla OS es un sistema operativo inmutable. Esto quiere decir que su sistema de ficheros es de solo lectura en un buen porcentaje y no debería de ser modificable por el usuario por la vía estándar, ni siquiera empleando la cuenta de ‘root’. A pesar de ello, pone a disposición una shell transaccional para poder modificar las partes nucleares del sistema.
Para lograr la inmutabilidad emplea el mecanismo de actualizaciones atómicas ABRoot, basado en un modelo A-B similar al que Google intenta impulsar en Android. Los responsables no descartan, al menos por ahora, adoptar OSTree en un futuro.
Otra característica de Vanilla OS es que intenta respetar las decisiones del usuario. Para ello, en el comienzo se da a elegir entre los formatos de paquetes universales que el usuario quiere utilizar. Ahora aparecen solo Flatpak y AppImage en la ventana de configuración inicial, pero antes también estaba la posibilidad de activar Snap. Además de eso, están los códecs, las herramientas de virtualización (libvirt) y las aplicaciones y herramientas que se quieren tener en un principio. Después de cumplimentar los pasos iniciales, es muy probable que se pida reiniciar para aplicar los cambios (cosa normal en los sistemas inmutables).
Después de exponer un poco de las características más esenciales de Vanilla OS, vamos a profundizar un poco en dos de ellas basándonos en lo expuesto a través del anuncio oficial.
Apx
Apx es el particular gestor de paquetes “tradicionales” de Vanilla OS. Se basa o al menos está inspirado en Distrobox y según los responsables “introduce un paradigma completamente nuevo en la gestión de paquetes. La idea es usar su sistema solo como una caja para almacenar sus archivos, dejándolo limpio de paquetes y limitando el riesgo de romperse debido a paquetes incompatibles, mal construidos o conflictivos”. Para ello, se encarga de instalar el software dentro de uno o varios contenedores que son gestionados totalmente por Apx y con un acceso restringido a los recursos del sistema.
Apx proporciona por defecto un contenedor basado en Ubuntu 22.10, sistema del deriva, pero también permite instalar paquetes de otras distribuciones empleando el indicador --aur
, que crea un contenedor de Arch Linux para la gestión de los paquetes AUR mediante Pacman y yay, y el indicador --dnf
para administrar paquetes del repositorio DNF de Fedora. Apx intenta que todo acabe integrado en el host o anfitrión para que el usuario no tenga la sensación de emplear una especie de hidra cuando usa Vanilla OS a modo de simple escritorio.
Las aplicaciones gráficas que son instaladas dentro de contenedores de Apx son automáticamente añadidas al menú de Aplicaciones y en el menú de “Abrir con” de Nautilus/Files/Archivos. También son listados en la sección de subsistema del centro de control de Vanilla OS.
ABRoot
ABRoot es el sistema que permite aplicar cambios en el sistema limitando los riesgos de rotura. Soporta transacciones atómicas, lo que quiere decir que, si no se completa el proceso de cambio (instalación o actualización), este se aborta y devuelve al estado anterior al inicio de la transacción para evitar que los cambios se apliquen a medias y terminen por romper el sistema.
Profundizando un poquito en las peculiaridades de ABRoot, este realiza las transacciones entre dos sistemas de ficheros raíz: A y B. Básicamente, cuando se quiere instalar un nuevo paquete, ABRoot verificará cuál es la partición raíz actual, que estableceremos en A, para luego montar una superposición encima y realizar la transacción. En caso de que la transacción sea llevada a cabo con éxito, la superposición montada se fusiona con la futura partición raíz, que viene a ser B. En caso de fallar, la superposición se descarta y el sistema continuará funcionando con normalidad, sin ningún cambio en ninguna de las dos particiones, y obviamente el proceso puede hacerse a la inversa, aplicando los cambios desde B hasta A.
Este mecanismo ofrece bastante resiliencia frente a los errores y, como ya hemos dicho, es algo que Google pretende impulsar en Android. Sin embargo, este es posiblemente el motivo de por qué Vanilla OS exige un mínimo de 50GiB de almacenamiento en disco para ser instalado, una cantidad que en una máquina física resulta poca, pero que en virtual puede sonar un poco excesiva.
Continuando con más cosas de ABRoot, con él se pretende ofrecer un sistema de actualizaciones automáticas e inteligentes. Para ello se pone a disposición una herramienta llamada Operador de Sistema de Vanilla (VSO), que se encargará de buscar periódicamente actualizaciones para proceder a descargarlas e instalarlas en segundo plano en caso de que el sistema no se encuentre en uso intensivo. VSO comprueba si se cumplen los requisitos necesarios a nivel de CPU, RAM y carga de la batería antes de iniciar la actualización. Tras completarse el proceso, toca reiniciar, aunque el usuario debería de poder seguir usando el sistema con normalidad y sin preocuparse de los conflictos en los que derivan las actualizaciones en caliente.
A través de una sección accesible a través de GNOME Software, el usuario puede programar las actualizaciones y activar o desactivar la función inteligente, que en caso de no estar habilitada, hará que VSO proceda a actualizar en segundo plano independientemente de los recursos disponibles y el nivel de carga de la batería.
Ya sea con transactional-update y las instantáneas de Btrfs, OSTree y la generación de imágenes o ABRoot y el sistema A-B, el objetivo es ofrecer un mecanismo que evite en lo máximo posible la rotura y posterior inutilización del sistema operativo.
Otras características de Vanilla OS 22.10 Kinetic
Después de exponer de manera resumida las principales características de Vanilla OS, vamos a mencionar algunos aspectos importantes que están ahí.
Para empezar, y haciendo honor al nombre de la distribución, tenemos GNOME 43 en su estado vanilla, con Wayland por defecto y GTK4 y libadwaita al frente. Aquí no solo nos encontramos con un escritorio en su implementación base y sin extensiones, sino también con la presencia de GNOME Web (antes Epiphany) como navegador web predeterminado en lugar de Firefox, tradicional ocupante del puesto en las distribuciones Linux. Aquí entramos en el manido debate sobre el concepto que se intenta impulsar desde el entorno de escritorio, así que dejaremos el tema aquí.
Al igual que su distribución madre, Vanilla OS cuenta con un gestor de controladores. Habrá que ver cómo se desempeña el de NVIDIA sobre este nuevo paradigma, pero los responsables del sistema dicen que su producto está listo para gaming, así que nos suponemos que se han encargado de poner en orden ese frente.
Por último, el creador de la distribución es Mirko Brombin, fundador de la aplicación Bottles. Bottles, como ya es sabido por nuestros lectores habituales, se encarga de facilitar la descarga y el uso de compilaciones de Wine y de derivados como Proton.
Conclusión
Vanilla OS es otro exponente del pequeño pero creciente mundo de los sistemas Linux inmutables orientados al escritorio, que tiene en el SteamOS 3 de Valve a su principal exponente en número de usuarios.
A nivel conceptual no nos encontramos con nada muy novedoso, ya que volvemos a ver sistemas orientados a los contenedores, separación de las aplicaciones del sistema y mecanismos para evitar que el sistema operativo acabe roto. Sin embargo, Apx es un añadido realmente interesante que abre la puerta a que Vanilla OS abarque de manera más simple el uso de contenedores basados en otras distribuciones.
Y hasta aquí todo lo importante de esta distribución de reciente creación. Los detalles están publicados en el anuncio oficial y la documentación, mientras que el sistema puede ser obtenido a partir del índice del sitio web oficial del proyecto. Os dejamos con el vídeo de presentación.