Se presenta el concepto de la distribución AerynOS con la justificación de las decisiones arquitectónicas.

Los desarrolladores de AerynOS, antes conocido como SerpentOS, han publicado un artículo detallado que describe el concepto y la implementación técnica del proyecto, así como la justificación de las decisiones arquitectónicas. El líder del proyecto, Ikey Doherty, subraya que AerynOS no es simplemente "otra distribución". Linux», а платформа, фундамент и набор инструментов, созданные в соответствии с чётким видением.

Основная идея проекта сформулирована в виде вопроса: «Что, если операционная система будет вести себя как современная инфраструктура?». AerynOS представлен как ответ на этот вопрос — система, построенная с нуля, а не следующая традиционной модели встроенных мутаций внутри дистрибутива. Проект опирается на опыт авторов в разработке других дистрибутивов, включая Solus и Clear Linux.

Entre las soluciones técnicas clave de AerynOS se encuentran:

  • Usando la cadena de herramientas LLVM en lugar de GNU, con libc++ y compiler-rt de forma predeterminada. Los desarrolladores explican esta decisión no simplemente como una preferencia por LLVM, sino como una elección estratégica para utilizar mejores diagnósticos y garantizar la corrección y portabilidad de los paquetes. El sistema utiliza glibc en lugar de musl, lo que es una elección deliberada en favor de la compatibilidad y el rendimiento.

    Como afirma el artículo: "La ventaja de rendimiento de glibc sobre musl está bien documentada, especialmente para cargas de trabajo con uso intensivo de recursos informáticos y aplicaciones que requieren un rendimiento multihilo óptimo". Los creadores enfatizan que su objetivo es construir un sistema funcional y utilizable para una variedad de escenarios de aplicación.

  • Концепция «statelessness» (без сохранения состояния) — пакетам запрещено содержать какие-либо файлы за пределами каталога /usr. Как поясняют разработчики, этот подход заставляет обеспечивать разумные значения по умолчанию на всех уровнях и устраняет «ужасные конфликты трёхстороннего слияния при обновлении пакетов». Конфликтов нет, потому что всё в /etc и /var принадлежит пользователю, а /usr — исключительно системе. Концепция была разработана во времена Clear Linux и Solus, а в AerynOS она получила дальнейшее развитие.
  • Actualizaciones atómicas: cada transacción de Moss es atómica. El sistema crea rápidamente un nuevo árbol /usr utilizando enlaces duros del caché deduplicado. Una vez creado y preparado con éxito, el nuevo árbol se reemplaza atómicamente. La transacción preparada en realidad se intercambia con el directorio real /usr utilizando renameat2 con el indicador RENAME_EXCHANGE. La actualización se realiza completamente o no se realiza en absoluto, sin estados intermedios.
  • Gestión de arranque basada en los proyectos blsforme y disks-rs. La particularidad de este enfoque es que el sistema genera dinámicamente parámetros para la línea de comandos del kernel leyendo los superbloques de los dispositivos del sistema de archivos raíz, por lo que AerynOS no tiene un archivo de configuración que contenga el parámetro "root=". Además, el identificador de transacción de musgo se codifica en la línea de comandos del kernel y se procesa durante el arranque inicial en initramfs. "En resumen, esto significa que cada núcleo está correctamente sincronizado con su sistema de archivos raíz correspondiente, y la reversión es barata, fácil y accesible directamente desde el menú de arranque", explican los desarrolladores. Otra ventaja es que no existe /etc/default/grub, y si se borra el ESP, Moss puede reconstruirlo desde cero.
  • El formato de paquete .stone es un formato de paquete binario propietario con un encabezado independiente de la versión para adaptarse a cambios futuros. Cada paquete .stone contiene cuatro tipos de carga útil específicos, cada uno de los cuales puede evolucionar independientemente gracias al control de versiones:
    • La carga de contenido es un bloque secuencial de datos deduplicados, es decir, el contenido de los propios archivos del paquete.
    • Carga útil del índice: contiene compensaciones para la carga útil del contenido, indexada por el hash XXH128 del contenido (se planea migrar a Blake3). Esto le permite encontrar y extraer datos de manera eficiente.
    • Carga útil de diseño: describe el diseño esperado del sistema de archivos cuando se aplica el paquete, es decir, dónde y qué archivos se deben instalar.
    • Carga útil de metadatos: una secuencia de registros de metadatos etiquetados y fuertemente tipados, como el nombre del paquete, las capacidades proporcionadas, etc.

Todas las cargas se comprimen utilizando Zstd, que proporciona un excelente rendimiento de descompresión manteniendo una buena relación de compresión. El proceso de "instalación" de .stone es fundamentalmente diferente de otros sistemas. En lugar de instalar archivos directamente, el paquete se almacena en caché y su contenido se integra en un almacén de contenido direccionable (CAS) común. Los metadatos y la información de diseño se almacenan por separado y se utilizan al crear una transacción. Este enfoque garantiza la atomicidad de las actualizaciones y la capacidad de revertirlas, ya que cada transacción crea una nueva partición raíz en lugar de modificar una existente.

Los desarrolladores señalan que el enfoque actual de emular la gestión imperativa de paquetes es "completamente inútil" y "en realidad introduce más errores de los que resuelve". Dado que se crea un nuevo sistema de archivos raíz para cada transacción, el plan futuro es crear un nuevo gráfico para cada transacción, alejándose de los cambios en línea en favor de un enfoque declarativo similar a Gentoo o Nix.

Otra aclaración interesante se refiere a la inmutabilidad. Los creadores señalan que a menudo se describe a AerynOS como un sistema operativo inmutable, pero "esto no es del todo cierto". Aunque cada transacción genera un nuevo árbol /usr y los cambios locales no se conservan, el sistema no es inmutable en el sentido de acceso de sólo lectura. En el futuro, se planea implementar una verdadera inmutabilidad del sistema sin la necesidad de reiniciar utilizando erofs y overlayfs.

Actualmente, AerynOS se está desarrollando activamente, ya lanza imágenes ISO con el entorno GNOME, es adecuado para juegos (soporte para controladores NVIDIA, Steam, Flatpak), tiene usuarios reales que notan la estabilidad e innovación del sistema. Según los desarrolladores, el proyecto está en fase alfa y no está exento de problemas, pero ya representa un sistema completo que “simplemente funciona”.

Fuente: opennet.ru

Compre alojamiento confiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra alojamiento web fiable con protección DDoS, servidores VPS VDS | ProHoster