Después de dos años de trabajo en el proyecto, los desarrolladores de la distribución SerpentOS anunciaron la posibilidad de probar las herramientas principales, que incluyen:
- el gestor de paquetes moss;
- el sistema de contenedores moss-container;
- el sistema de gestión de dependencias moss-deps;
- el sistema de compilación boulder;
- el sistema de ocultación de servicios avalanche;
- el gestor de repositorios vessel;
- panel de control summit;
- la base de datos moss-db;
- el sistema de arranque reproducible (bootstrap) bill.
Se encuentran disponibles API públicas y recetas de paquetes. Para el desarrollo de herramientas se utiliza principalmente el lenguaje de programación D, y el código se distribuye bajo la licencia Zlib. Los paquetes se escriben en lenguaje de configuración YAML y se compilan en un formato binario propio .stone, que incluye:
- Metadatos del paquete y sus dependencias;
- Información sobre la ubicación del paquete en el sistema en relación con otros paquetes;
- Índice de datos en caché;
- Contenido de los archivos del paquete necesarios para su funcionamiento.
El gestor de paquetes moss toma prestadas muchas funcionalidades modernas desarrolladas en gestores de paquetes como eopkg/pisi, rpm, swupd y nix/guix, manteniendo al mismo tiempo una visión tradicional sobre la manipulación de paquetes. Todos los paquetes se compilan por defecto en modo stateless y no incluyen archivos no relacionados con el sistema operativo, para evitar situaciones que requieran la resolución de conflictos entre paquetes o operaciones de fusión.
El gestor de paquetes utiliza un modelo atómico para la actualización del sistema, donde se fija el estado del rootfs, y después de la actualización se cambia al nuevo estado. Como consecuencia, si durante la actualización surgen problemas, hay una posibilidad de revertir los cambios al estado de trabajo anterior.
Para ahorrar espacio en disco al almacenar múltiples versiones de paquetes, se aplica deduplicación basada en enlaces duros y un caché compartido. El contenido de los paquetes instalados se coloca en el directorio /os/store/installation/N, donde N es el número de versión. Los directorios base se vinculan a este contenido mediante enlaces (por ejemplo, /sbin apunta a /os/store/installation/0/usr/bin, y /usr a /os/installation/0/usr).
El proceso de instalación de paquetes consta de las siguientes etapas:
- Escritura de la receta de instalación (stone.yml);
- Compilación del paquete utilizando boulder;
- Obtención del paquete binario en formato .stone con los metadatos necesarios;
- Registro en la base de datos de paquetes;
- Instalación mediante el gestor de paquetes moss.
Alrededor del proyecto se ha reunido el antiguo equipo de desarrolladores de la distribución Solus. Por ejemplo, en el desarrollo de la distribución SerpentOS participan Ikey Doherty, creador de Solus, y Joshua Strobl, desarrollador clave del entorno de escritorio Budgie, quien anteriormente anunció su salida del consejo directivo del proyecto Solus y renunció a su autoridad como líder encargado de la interacción con los desarrolladores y el desarrollo de la interfaz de usuario.
Los desarrolladores de SerpentOS invitan a especialistas que conozcan el lenguaje de programación D a unirse al desarrollo de las herramientas principales y/o a la redacción de recetas de paquetes, mientras que piden a los no técnicos que ayuden en la traducción de la documentación a varios idiomas.
Fuente: opennet.ru
