Les presento un proyecto que estuve probando, desarrollando y ahora pude reescribir en limpio después de tantas iteraciones.
LayerFS - Sistema de archivos transicional basado en capas.
¿Cual es el problema que quiero resolver?
Me gusta mucho como Linux te da la libertad de moldear el sistema a tu antojo. Me gusta Linux, lo uso a diario en mi laptop donde programo. Sin embargo hasta ahora no customicé el sistema ni le puse un tema todo bonito lleno de animaciones ¿Por que?
No quiero brickear ni joderlo. Que si, que soy usuaria avanzada, las veces que se me jodió el sistema por tocarlo pude repararlo. Siempre tengo una USB de rescate. Sin embargo, yo uso esa PC para trabajar y no puedo perderme horas laborales por eso.
¿Y si hubiera una forma de hacer que tu sistema Linux sea "irrompible"? Que no puedas ni dañarlo a propósito. Están las distros inmutables/atómicas, si, pero no quiero perder el control de mi propia PC.
¿Y si hubiera un punto medio?
---
Les presento LayerFS: Divide tu sistema en 4 capas/secciones importantes y las construye a la hora de iniciar el PC.
Visualicemos mentalmente las capas. Tenemos la capa base, acá va el sistema base, vanilla, sin modificaciones ni actualizaciones. Congelado, inmutable, no puede cambiar.
Seguido tenemos la capa de actualizaciones. Es importante poder modificar el sistema, no solo instalarle binarios o apps, si no modificar si queremos desde el bootloader hasta una librería que podría romper el OS si la eliminamos. No quiero eliminarla obvio pero quiero poder hacerlo si quisiera.
Tercero tenemos otra similar a la anterior, la capa de la actualización cabecera o "HEAD". Esta es la última actualización del sistema. En la capa de UPDATE (La anterior) tenemos la actualización anterior y no la actual, de tal forma que podemos hacer rollback a una update de forma segura.
Y cuarto tenemos la capa Override o la del usuario. Acá vive cualquier binario o modificación al sistema que el mismo usuario haga. Librerías, modificación a binarios, configs críticas, etc...
Entonces cuando se tenga que cargar un archivo en tu PC lejos de tu home de usuario, primero se revisará si existe en Override, o la capa 3. Luego en Update HEAD, Luego Update y por último en BASE.
Claro, podemos eliminar un archivo del sistema sin problemas. Podemos eliminar toda la capa base si quisiéramos, pero est cambio solo afectará a la Override, es decir, tu capa personal. Los archivos siguen ahí, solo que tu sistema no intentará cargarlo, dando como resultado un error al iniciar, claro.
Sin embargo, al estar ahí, versionados por capa y seguros podemos restaurarlos en el momento que quisieramos.
Acá es donde te introduzco al sistema de Checkpoints. Un checkpoint es un punto en donde tu PC puede iniciar, en total son 4:
- Base: Solo inicia el OS, sin updates ni tu config personal.
- System: Inicia el OS y la update pero sin tus modificaciones.
- Safe: Carga el OS, la update y tus archivos personales excepto los de configuración del sistema. Cargan apps instaladas en user space, librerías, logs, todo menos modificaciones al sistema base o demás.
- Normal: Básicamente carga todo.
En cualquier momento si tu PC deja de bootear simplemente seleccionas otro checkpoint desde el bootloader y te permite entrar, trabajar, usar y lo mas importante, reparar tu sistema. Ver que falló, reparar, restaurar a nivel quirúrgico.
Si en algún momento algo se corrompe podés desechar las capas de actualización y reconstruirla. Con la función rebuild del manifest podés desinstalar todos los binarios y software desde el momento en que instalaste el OS y volver a instalarlos en fresco a uno por uno.
Una opción incluso experimental es poder instalar actualización del sistema sin reiniciar el PC. Puede llevar a bugs catastrófico por errores de lib version skew peeeero es decisión completamente del usuario.
LayerFS por ahora funciona integrado solo con: Grub, dnf, dracut, apt y pacman. Si bien probé que funcionara en Debian/Ubuntu y Arch, mi target es Fedora porque es el que uso en mi laptop.
Si leiste hasta acá muchas gracias, espero feedback. Acá está el repositorio: https://t.co/6N4ldL8h8o
Y si me querés dar Feedback o ayudar a probar (agradecería) hice un servidor de Discord: https://t.co/WOu8o7Ayon
Muchas gracias, los adoro.
@HerberthEscob1@sysxplore Que componentes tiene? Estoy intentando revivir una PC vieja con un Intel E7500 usando MX Linux que usa debian, y cada que la dejo ahí sola por un tiempo, se crashea el xfce creo que es, solo en nomodeset sirve xd
O quizá debería probar Debian solo en vez de una distro derivada
@LaFuX_TW@PsArgom94@Magus_Max1 Pero los battlefield más antiguos suelen estar a super buen precio. Yo conseguí el BF1 y 2042 como a 3 dólares cada uno. Cod si ni los viejos bajan de 60 dólares, y de milagro bajaron tanto el mw2019 en oferta