След две години работа по проекта, разработчиците на дистрибуцията SerpentOS обявиха възможността за тестване на основния инструментариум, който включва:
- мениджър на пакети moss;
- система за контейнери moss-container;
- система за управление на зависимости moss-deps;
- система за компилиране boulder;
- система за скриване на услуги avalanche;
- мениджър на хранилища vessel;
- управляваща панел summit;
- база данни moss-db;
- система за възпроизводимо стартиране (bootstrap) bill.
Достъпни са публичен API и рецепти за пакети. За разработването на инструментариума основно се използва езикът за програмиране D, а кодът се разпространява под лицензия Zlib. Пакетите се пишат на езика за конфигурация YAML и се компилират в собствен бинарен формат .stone, който включва:
- Метаданни за пакета и неговите зависимости;
- Информация за разположението на пакета в системата спрямо другите пакети;
- Индекс на кешираните данни;
- Съдържанието на файловете на пакета, необходимите за работа.
Мениджърът на пакети moss заимства много съвременни функции, развивани в такива мениджъри на пакети като eopkg/pisi, rpm, swupd и nix/guix, запазвайки в същото време традиционния поглед към манипулацията на пакети. Всички пакети по подразбиране се компилират в режим stateless и не включват файлове, несвързани с операционната система, за да се избегнат ситуации, изискващи разрешаване на конфликти между пакети или операции на сливане.
Мениджърът на пакети използва атомарен модел за обновление на системата, при който се фиксира състоянието на rootfs, а след обновлението състоянието се променя на новото. Като следствие, ако по време на обновлението възникнат проблеми, е възможно да се върнат промените в предишното работно състояние.
За спестяване на дисково пространство при съхранение на няколко версии на пакети се прилага дедупликация на базата на твърди връзки и общо използван кеш. Съдържанието на инсталираните пакети се разполага в директорията /os/store/installation/N, където N е номер на версията. Към съдържанието на тази директория с помощта на връзки се прикрепят основните директории (например, /sbin указва на /os/store/installation/0/usr/bin, а /usr на /os/installation/0/usr).
Процесът на инсталиране на пакети се състои от следните етапи:
- Написване на рецепта за инсталация (stone.yml);
- Компилиране на пакета с помощта на boulder;
- Получаване на бинарен пакет в формат .stone с необходимите метаданни;
- Внасяне в базата данни на пакетите;
- Инсталация с пакетен мениджър moss.
Около проекта се събра старият екип от разработчици на дистрибуцията Solus. Например, в разработката на дистрибуцията SerpentOS участват Айки Доърти (Ikey Doherty), създателят на дистрибуцията Solus, и Джошуа Стробл (Joshua Strobl), водещ разработчик на работния плот Budgie, който преди това обяви, че напуска управителния съвет (Core Team) на проекта Solus и се оттегли от задълженията си на лидер, отговарящ за взаимодействието с разработчиците и развитието на потребителския интерфейс (Experience Lead).
Разработчиците на SerpentOS призовават специалисти, познаващи езика за програмиране D, да се присъединят към разработката на основния инструментариум и/или написването на рецепти за пакети, а не-техническите специалисти са помолени да помогнат с превода на документацията на различни езици.
Източник: opennet.ru
