¿Es esto el futuro de gnu/linux?. Fedora Silverblue

https://www.muycomputer.com/2022/11/11/ ... inmutable/

rpm-ostree: actualizaciones atómicas y generación de imágenes

Fedora Silverblue emplea un mecanismo de actualizaciones atómicas, OSTree, que tiene montado encima un gestor de paquetes llamado rpm-ostree. Para exponerlo todo de forma simple, las actualizaciones atómicas son un método de actualización que, en caso de fallar, llevará a cabo un proceso de reversión para evitar la aplicación de cambios parciales y la posible aparición de problemas, mientras que rpm-ostree hace de interfaz de OSTree y se encarga de la gestión de los paquetes RPM.

Además, cada vez que se haga una modificación en el sistema mediante rpm-ostree, ya sea instalar una aplicación o un programa en formato RPM, llevar a cabo un proceso de actualización o establecer argumentos del kernel, se generará una nueva imagen del sistema. En consecuencia, si el usuario accede al menú de GRUB de Fedora Silverblue, no verá versiones del kernel Linux, sino imágenes del sistema generadas con OSTree.

Cada imagen contiene el estado anterior del sistema operativo, así que es posible no solo revertir el kernel, sino también cualquier otro componente del sistema a un estado anterior. Debido a que las nuevas imágenes, por lo general, se generan con el proceso de actualización, estas no tienen por qué cambiar el kernel, sino que posiblemente lo modificado sea la versión del entorno de escritorio u otro componente, como systemd o el servidor de multimedia PipeWire (que de manera común también es conocido como un servidor de sonido).



Hoy vamos a presentar un sistema operativo Linux que pretende cambiar el paradigma dentro del espectro del escritorio: Fedora Silverblue. Su nombre ya deja entrever la distribución a la que pertenece, pero frente a la que todavía es la edición de referencia para escritorio, Workstation, destaca por ser un sistema operativo inmutable, además de por otras características.

El hecho de ser inmutable significa que el sistema de ficheros es en un alto porcentaje de solo lectura, así que el usuario solo puede escribir sobre algunas partes específicas, de las que sobresalen los directorios /etc y el personal. Cuando decimos que el sistema de ficheros es de solo lectura, nos estamos refiriendo a que no puede ser modificado ni siquiera con la cuenta de root, el administrador supremo de Linux y otros sistemas Unix y tipo Unix.

La inmutabilidad ha sido interpretada por algunos como una forma de limitar la libertad del usuario, pero en términos prácticos ofrece grandes ventajas como la reducción de posibilidades de rotura del sistema y una mayor predictibilidad para los desarrolladores al ser todas las implementaciones siempre iguales. Esto puede aplicarse a SteamOS 3, el sistema operativo empleado por la Steam Deck, el cual también es inmutable básicamente por las razones expuestas.

Pero Fedora Silverblue no es solo un Linux para escritorio cuyo sistema de ficheros es de solo lectura en un alto porcentaje, sino que aporta frente a la mayoría de distribuciones “tradicionales” las ventajas que vamos a mencionar a continuación.
rpm-ostree: actualizaciones atómicas y generación de imágenes

Fedora Silverblue emplea un mecanismo de actualizaciones atómicas, OSTree, que tiene montado encima un gestor de paquetes llamado rpm-ostree. Para exponerlo todo de forma simple, las actualizaciones atómicas son un método de actualización que, en caso de fallar, llevará a cabo un proceso de reversión para evitar la aplicación de cambios parciales y la posible aparición de problemas, mientras que rpm-ostree hace de interfaz de OSTree y se encarga de la gestión de los paquetes RPM.

Además, cada vez que se haga una modificación en el sistema mediante rpm-ostree, ya sea instalar una aplicación o un programa en formato RPM, llevar a cabo un proceso de actualización o establecer argumentos del kernel, se generará una nueva imagen del sistema. En consecuencia, si el usuario accede al menú de GRUB de Fedora Silverblue, no verá versiones del kernel Linux, sino imágenes del sistema generadas con OSTree.

Cada imagen contiene el estado anterior del sistema operativo, así que es posible no solo revertir el kernel, sino también cualquier otro componente del sistema a un estado anterior. Debido a que las nuevas imágenes, por lo general, se generan con el proceso de actualización, estas no tienen por qué cambiar el kernel, sino que posiblemente lo modificado sea la versión del entorno de escritorio u otro componente, como systemd o el servidor de multimedia PipeWire (que de manera común también es conocido como un servidor de sonido).
Fedora Silverblue 36

Fedora Silverblue 36.

La imagen que se genera en cada proceso de actualización se carga en el siguiente inicio del sistema, así que el usuario no tiene por qué preocuparse de los problemas que pueden ocasionar las actualizaciones en caliente y tampoco tiene que acarrear con las actualizaciones fuera de línea, las cuales han generado bastante debate entre los usuarios de Linux. El resultado es un mecanismo de actualización mucho más seguro y que no interrumpe el uso de la computadora por conflictos entre los componentes actualizados y sus versiones en uso.

Si alguien ha pensado en los puntos de restauración del sistema de Windows, no va mal encaminado, ya que el concepto tiene alguna que otra similitud. La ventaja de la generación de imágenes mediante OSTree es que permite al usuario revertir fácilmente a una versión (imagen) anterior del sistema en caso de recibir alguna actualización que le esté dando problemas. Este aspecto le da a Silverblue un plus de resiliencia frente a la mayoría sistemas Linux “tradicionales”, los cuales son mutables (permiten modificar prácticamente cualquier aspecto).
Flatpak, separando las aplicaciones del sistema para que no toquen donde no deben

Aparte de las actualizaciones atómicas y la generación de imágenes con OSTree y rpm-ostree, Fedora Silverblue intenta separar al usuario (más que las aplicaciones) del sistema mediante los motores de contenedores Podman y Toolbox, además del formato paquetes universales Flatpak. Como Podman y Toolbox son herramientas más orientadas a desarrolladores y usuarios avanzados, nos centraremos exclusivamente en Flatpak.

A estas alturas cualquiera que haya seguido un poco la actualidad sobre Linux sabe lo que es Flatpak, un formato de paquetes universales que pretende hacer que los mismos empaquetados de las aplicaciones gráficas funcionen sobre cualquier distribución. Decimos aplicaciones graficas porque Flatpak es un marco creado para cubrir específicamente eso.

Flatpak entra en competencia con los formatos de paquetes “tradicionales” en sistemas como Ubuntu, Linux Mint, Fedora Workstation o Arch Linux, pero en los sistemas inmutables tiene mucho más sentido debido a que refuerza una perspectiva que ya maneja de por sí: la de separar las aplicaciones del sistema operativo.



Hoy vamos a presentar un sistema operativo Linux que pretende cambiar el paradigma dentro del espectro del escritorio: Fedora Silverblue. Su nombre ya deja entrever la distribución a la que pertenece, pero frente a la que todavía es la edición de referencia para escritorio, Workstation, destaca por ser un sistema operativo inmutable, además de por otras características.

El hecho de ser inmutable significa que el sistema de ficheros es en un alto porcentaje de solo lectura, así que el usuario solo puede escribir sobre algunas partes específicas, de las que sobresalen los directorios /etc y el personal. Cuando decimos que el sistema de ficheros es de solo lectura, nos estamos refiriendo a que no puede ser modificado ni siquiera con la cuenta de root, el administrador supremo de Linux y otros sistemas Unix y tipo Unix.

La inmutabilidad ha sido interpretada por algunos como una forma de limitar la libertad del usuario, pero en términos prácticos ofrece grandes ventajas como la reducción de posibilidades de rotura del sistema y una mayor predictibilidad para los desarrolladores al ser todas las implementaciones siempre iguales. Esto puede aplicarse a SteamOS 3, el sistema operativo empleado por la Steam Deck, el cual también es inmutable básicamente por las razones expuestas.

Pero Fedora Silverblue no es solo un Linux para escritorio cuyo sistema de ficheros es de solo lectura en un alto porcentaje, sino que aporta frente a la mayoría de distribuciones “tradicionales” las ventajas que vamos a mencionar a continuación.
rpm-ostree: actualizaciones atómicas y generación de imágenes

Fedora Silverblue emplea un mecanismo de actualizaciones atómicas, OSTree, que tiene montado encima un gestor de paquetes llamado rpm-ostree. Para exponerlo todo de forma simple, las actualizaciones atómicas son un método de actualización que, en caso de fallar, llevará a cabo un proceso de reversión para evitar la aplicación de cambios parciales y la posible aparición de problemas, mientras que rpm-ostree hace de interfaz de OSTree y se encarga de la gestión de los paquetes RPM.

Además, cada vez que se haga una modificación en el sistema mediante rpm-ostree, ya sea instalar una aplicación o un programa en formato RPM, llevar a cabo un proceso de actualización o establecer argumentos del kernel, se generará una nueva imagen del sistema. En consecuencia, si el usuario accede al menú de GRUB de Fedora Silverblue, no verá versiones del kernel Linux, sino imágenes del sistema generadas con OSTree.

Cada imagen contiene el estado anterior del sistema operativo, así que es posible no solo revertir el kernel, sino también cualquier otro componente del sistema a un estado anterior. Debido a que las nuevas imágenes, por lo general, se generan con el proceso de actualización, estas no tienen por qué cambiar el kernel, sino que posiblemente lo modificado sea la versión del entorno de escritorio u otro componente, como systemd o el servidor de multimedia PipeWire (que de manera común también es conocido como un servidor de sonido).
Fedora Silverblue 36

Fedora Silverblue 36.

La imagen que se genera en cada proceso de actualización se carga en el siguiente inicio del sistema, así que el usuario no tiene por qué preocuparse de los problemas que pueden ocasionar las actualizaciones en caliente y tampoco tiene que acarrear con las actualizaciones fuera de línea, las cuales han generado bastante debate entre los usuarios de Linux. El resultado es un mecanismo de actualización mucho más seguro y que no interrumpe el uso de la computadora por conflictos entre los componentes actualizados y sus versiones en uso.

Si alguien ha pensado en los puntos de restauración del sistema de Windows, no va mal encaminado, ya que el concepto tiene alguna que otra similitud. La ventaja de la generación de imágenes mediante OSTree es que permite al usuario revertir fácilmente a una versión (imagen) anterior del sistema en caso de recibir alguna actualización que le esté dando problemas. Este aspecto le da a Silverblue un plus de resiliencia frente a la mayoría sistemas Linux “tradicionales”, los cuales son mutables (permiten modificar prácticamente cualquier aspecto).
Flatpak, separando las aplicaciones del sistema para que no toquen donde no deben

Aparte de las actualizaciones atómicas y la generación de imágenes con OSTree y rpm-ostree, Fedora Silverblue intenta separar al usuario (más que las aplicaciones) del sistema mediante los motores de contenedores Podman y Toolbox, además del formato paquetes universales Flatpak. Como Podman y Toolbox son herramientas más orientadas a desarrolladores y usuarios avanzados, nos centraremos exclusivamente en Flatpak.

A estas alturas cualquiera que haya seguido un poco la actualidad sobre Linux sabe lo que es Flatpak, un formato de paquetes universales que pretende hacer que los mismos empaquetados de las aplicaciones gráficas funcionen sobre cualquier distribución. Decimos aplicaciones graficas porque Flatpak es un marco creado para cubrir específicamente eso.

Flatpak entra en competencia con los formatos de paquetes “tradicionales” en sistemas como Ubuntu, Linux Mint, Fedora Workstation o Arch Linux, pero en los sistemas inmutables tiene mucho más sentido debido a que refuerza una perspectiva que ya maneja de por sí: la de separar las aplicaciones del sistema operativo.

Logo de Fedora Silverblue

Flatpak no interacciona a nivel de paquetes con la parte RPM gestionada por rpm-ostree, aunque sí con servicios como por ejemplo el mencionado PipeWire para el soporte de audio, el cual obviamente está presente en formato RPM. El hecho de que Flatpak y la parte RPM sean gestionados de forma totalmente separada, unido a la inmutabilidad, hace que por diseño se fulmine un problema que tradicionalmente se ha visto en Linux, y es el hecho de que una aplicación, mediante un conflicto de dependencias, puede por llevarse por delante un altísimo porcentaje del sistema operativo, rompiéndolo y forzando una reinstalación si no se tienen los conocimientos para restaurar manualmente los paquetes desinstalados.

Un ejemplo paradigmático de lo que acabo de exponer es lo que le ocurrió hace un año a Linus Tech Tips al intentar instalar el cliente de Steam en Pop!_OS. Debido a un fallo de dependencias entre los paquetes Deb procedentes de los repositorios de la distribución, terminó por desinstalar todo el escritorio, rompiendo de facto el sistema.

El escenario experimentado por Linus Sebastian (así se llama el protagonista o jefe del canal) es extremadamente difícil que se produzca en Fedora Silverblue, y en caso de recibir un paquete RPM defectuoso, siempre queda la opción de iniciar una imagen anterior del sistema.

Eso sí, Flatpak arrastra la limitación de no poder funcionar como administrador, así que las configuraciones gráficas del cortafuegos (paquete firewall-config) y del módulo de seguridad SELinux (paquete policycoreutils-gui) hay que instalarlas en formato RPM mediante rpm-ostree. Pese a ello, la configuración de seguridad predeterminada de Fedora deja usar todo lo básico en un escritorio sin problemas y además es bastante fuerte, ya que SELinux funciona por defecto en modo estricto.
Cómo se gestiona todo en la práctica (por si te has asustado)

¿Demasiadas cosas técnicas y complicadas? Explicar el cambio de paradigma que supone Fedora Silverblue es extremadamente difícil sin pisar algunos terrenos ásperos, pero afortunadamente, se puede simplificar todo de cara a un uso práctico real.

Una de las almas del proyecto Fedora es la automatización, cosa que afortunadamente también aplica a Silverblue. Básicamente, lo que tiene que hacer el usuario es abrir GNOME Software y dirigirse a la sección de actualizaciones, donde podrá ver, aunque no siempre, dos secciones diferenciadas, una en la que aparece escrito “Requiere reiniciar” y otra “Actualizaciones de aplicaciones”.

La sección “Requiere reiniciar” es la parte RPM, la gestionada por OSTree mediante rpm-ostree. Aquí solo hay que pulsar sobre el botón “Reiniciar y actualizar” y se iniciará el proceso de actualización y la generación de la nueva imagen del sistema. Tras completarse, al usuario le aparecerá un aviso indicando que el sistema se reiniciará en los próximos 60 segundos si no cancela. Gracias a que la nueva imagen se carga en el siguiente inicio, el usuario puede cancelar perfectamente y continuar con su trabajo como si nada, aunque recomendamos reiniciar en cuanto se pueda sobre todo en caso de haber recibido actualizaciones de seguridad.

Por su parte, “Actualizaciones de aplicaciones” son las aplicaciones, componentes y entornos de ejecución (runtimes) de Flatpak, los cuales pueden actualizarse en caliente sin problemas y como mucho requiriendo el reinicio de las aplicaciones actualizadas. Aprovechamos la ocasión para recomendar la instalación del repositorio Flathub, el cual suministra muchas aplicaciones básicas y soporte para formatos de multimedia privativos. El usuario puede simplemente descargar el fichero del repositorio, abrirlo con GNOME Software (“Abrir con Instalar software” en el menú contextual), proceder a instalarlo y reiniciar la sesión.


Cuando se cambia algo gordo del sistema, se hace como un respaldo del sistema. Así si falla algo y no ves las x, pues desde grub, puedes volver atrás.

Se cambia el método de flatpak para no pisar otros paquetes del sistema y en general, más control de la paquetería. Igual todavía no funciona fino, pero esto pensado para dar estabilidad al sistema.
Mas que un respaldo... El sistema al completo excepto /var es readonly y se maneja mediante streams que pueden hacer rollback a un punto en concreto. Algo similar a git pero para el filesystem. Todos los ficheros del sistena en todos los nodos en el hash A seran siempre identicos. Que updateas a B y algo falla, puedes volver al hash A y tener todo igual de vuelta.
Es como un sanpshot de btrfs?
@Duendeverde mira sobre https://victorhckinthefreeworld.com/202 ... contrarlo/ es verdad que no es tan fácil de ponerlo en marcha cómo Fedora Silverblue, pero tiene conceptos muy interesantes.
Brutico escribió:Es como un sanpshot de btrfs?

No. Es como tener un repositorio git para el filesystem y poder cambiar de rama o hacer revert de un commit y controlar el filesystem entero de esa manera. Fuera de esa operacion el sistema es immutable. El resultado es poder distribuir el sistema entero via https, con capacidad de rollback, immutable, y de forma que todos las maquinas que esten en el mismo commit de git para el sistema de ficheros tendran / identico

https://ostreedev.github.io/ostree/

El caso de uso mas comun es el de setup de entornos containerizados. Red Hat lo usa para Openshift por ejemplo: la imagen de los hosts se distribuie de esta manera, asegurandose que todos los nodos son identicos, facilitando el mantenimiento automatico y la seguridad de los hosts donde se despliega kubernetes.

O en edge en conjuncion con podman
Pues mi futuro reciente con Linux es el abandono. Lastimosamente a día de hoy no lo necesito para nada que no pueda hacer mejor, mas cómodo y rápido con otros sistemas. Como diría una mujer que te rechaza. No eres tu, soy yo. A día de hoy ya soy mayor y no te necesito.
Y lo digo con gran pesar, hemos sido buenos compañeros por mas de 20 años pero desde que me retiré ya no necesito hacer cosas serias. Solo fiesta y diversión.
Mengsk escribió:Pues mi futuro reciente con Linux es el abandono. Lastimosamente a día de hoy no lo necesito para nada que no pueda hacer mejor, mas cómodo y rápido con otros sistemas. Como diría una mujer que te rechaza. No eres tu, soy yo. A día de hoy ya soy mayor y no te necesito.
Y lo digo con gran pesar, hemos sido buenos compañeros por mas de 20 años pero desde que me retiré ya no necesito hacer cosas serias. Solo fiesta y diversión.


Con la gran cantidad de hardware que sacan en los últimos años, sumado a la poca comunidad que tiene Linux , afectada además por los buenos precios que tenían los Mac M1 (y la potencia)...

Yo en la empresa que estoy ahora, empecé con un Linux, MSI muy muy pepino, con 16GB de RAM y tal, que costaba muy similar a un Mac. No podía levantar los entornos correctamente. No había soporte para Docker Desktop. La gestión de memoria en Linux era nefasta y me huelo a que los drivers también tenían miles de problemas.

La empresa se gastó más pasta para comprar unos Vant, con 32GB de ram que funcionan. A secas, porque tampoco es que tires cohetes y también hemos tenido algún que otro cuelgue. Pero para ese momento, ya me pillé un Macbook Pro M1, con 16GB también, pero que literalmente vuela.

¿Por qué no volví a Linux? Por varios motivos y el principal es que no tengo un sitio Oficial del que poder tirar para instalar todas las aplicaciones "normales". tengo las ventajas de un Windows, que muchas veces es bajar la app, doble click, instalar y fuera, pero con lo bueno de la consola de Linux, que me instalo los paquetes que necesito para el trabajo, todo flexible, pero con un SO que está mucho más optimizado.

En el curro pecaron de instalar Ubuntu, pero muchos developers ni saben, ni quieren dedicar tiempo extra a trastearlo, simplemente quieren que todo funcione como debe ser, por lo que tampoco hacíamos piña para sacarle partido a Linux, así que yo... pasando.

Es mi experiencia... Linux me dió buenos momentos cuando necesitaba revivir máquinas antiguas o para trastear, pero cuando te pones a trabajar con cosas grandes, y una máquina potente, lo primero que necesitas es un sistema robusto y fiable. No lo encontré con Linux..

Para mi también; mi futuro con Linux es, no volver. Hasta el punto de haber rechazado ofertas de trabajo porque no me ofrecían un Mac.

Gaming y personal -> Windows
Trabajar -> Mac

Es mi preferencia personal.
@xDarkPeTruSx

Madre mía, es muy curioso lo de docker, ya que es nativo de Linux, en windows desde que sacaron WSL2 va bastante bien todo el tema de docker y en Mac hasta hace 2 días iba regular mal, era con diferencia el más lento levantar las máquinas y el sistema de archivo también muy lento (eso ha cambiado hace poco).

No he usado Fedora Silverblue, pero en un portatil que tengo ya algo antiguo (10 años y tampoco era potente en su época) en windows no soy capaz de levantar 2 docker sin que se quede medio colgado el ordenador, porque WSL2 al fin y al cabo es una virtualización de Ubuntu en mi caso con 2 docker y chupa, sin embargo levantar lo mismo en la partición que tengo de Manjaro lo hace sin despeinarse.

Lo que sí que me parece bien en las empresas es que te diesen la opción de elegir, aunque es cierto que en ciertos ambitos no hay opción y toca windows only,

Un saludo
luciferfran escribió:@xDarkPeTruSx

Madre mía, es muy curioso lo de docker, ya que es nativo de Linux, en windows desde que sacaron WSL2 va bastante bien todo el tema de docker y en Mac hasta hace 2 días iba regular mal, era con diferencia el más lento levantar las máquinas y el sistema de archivo también muy lento (eso ha cambiado hace poco).

No he usado Fedora Silverblue, pero en un portatil que tengo ya algo antiguo (10 años y tampoco era potente en su época) en windows no soy capaz de levantar 2 docker sin que se quede medio colgado el ordenador, porque WSL2 al fin y al cabo es una virtualización de Ubuntu en mi caso con 2 docker y chupa, sin embargo levantar lo mismo en la partición que tengo de Manjaro lo hace sin despeinarse.

Lo que sí que me parece bien en las empresas es que te diesen la opción de elegir, aunque es cierto que en ciertos ambitos no hay opción y toca windows only,

Un saludo



Ya, es muy curioso. Ya te digo que con Mac Intel, era totalmente imposible levantar Docker. En cambio con el M1 y las actualizaciones que hicieron, siempre que utilices alguna imagen compatible con ARM64, va como un tiro.

Crea y levanta los contenedores que da gusto, gestiona mejor la memoria y al final obtienes un mejor rendimiento.

Ya te digo que con mi M1 de 16GB, compito de tu a tu con un Ubuntu con 32GB de RAM y un Intel i7.

Si que es cierto que yo me tuve que currar una refactorización bastante heavy del funcionamiento de nuestros dockers para hacerlo compatible con Mac, porque estábamos usando algunas imágenes que no eran compatibles con ARM y ahí si que los Mac estaban muertos si tenían que virtualizar, pero fue cambiar de imagen, adaptar las 4 cosas, cambiar unos cuantos comandos....

De hecho, en Ubuntu se notó mejora también con la optimización, porque ahora utilizamos imágenes más livianas, pero igualmente con un M1 pocho, tiramos Docker bien. El problema sigue siendo node, que cuando levantas un npm run Watch, se fuma toda la ram.
Los dockers como los llamais, no son mas que un caso de uso de una caracteristica de linux, cgroups. Correr un contenedor en cualquier otra cosa que no sea linux necesita alguna capa de virtualizacion para poder levantar un kernel linux para usar cgroups
Alguna vez había pensado en usar git para estas cosas, como etckeeper.
10 respuestas