The SerpentOS toolkit is available for testing.

After two years of work on the project, the developers of the SerpentOS distribution announced the possibility of testing the core tools, including:

  • the moss package manager;
  • the moss-container system;
  • the moss-deps dependency management system;
  • the boulder build system;
  • the avalanche service concealment system;
  • the vessel repository manager;
  • control panel summit;
  • the moss-db database;
  • the bill reproducible bootstrapping system.

A public API and package recipes are available. The core toolset is primarily developed in the D programming language, and the code is distributed under the Zlib license. Packages are written in the YAML configuration language and compiled into a custom binary format .stone, which includes:

  • Package metadata and its dependencies;
  • Information about the package's location in the system relative to other packages;
  • An index of cached data;
  • The content of package files required for operation.

The moss package manager borrows many modern features developed in package managers such as eopkg/pisi, rpm, swupd, and nix/guix, while maintaining a traditional approach to package manipulation. All packages are compiled by default in a stateless mode and do not include files unrelated to the operating system to avoid situations requiring conflict resolution between packages or merging operations.

The package manager uses an atomic model for updating the system, where the state of rootfs is fixed, and after the update, the state switches to the new one. Consequently, if any issues arise during the update, there is an option to roll back to the previous working state.

To save disk space when storing multiple versions of packages, deduplication based on hard links and a shared cache is employed. The content of installed packages is located in the /os/store/installation/N directory, where N is the version number. The base directories are linked to the content of this directory (for example, /sbin points to /os/store/installation/0/usr/bin, and /usr to /os/installation/0/usr).

The package installation process consists of the following stages:

  • Writing the installation recipe (stone.yml);
  • Building the package with boulder;
  • Obtaining a binary package in .stone format with the necessary metadata;
  • Database entry of packages;
  • Installation via the moss package manager.

An old team of developers around the Solus distribution has come together again for the project. For example, Ikey Doherty, the creator of Solus, and Joshua Strobl, the key developer of the Budgie desktop, are involved in the development of the SerpentOS distribution. Joshua had previously announced his departure from the Core Team of the Solus project and relinquished his role as Experience Lead, responsible for developer interactions and user interface development.

The SerpentOS developers are inviting specialists who know the D programming language to join the development of the core toolkit and/or to write package recipes, while non-technical specialists are asked to help translate the documentation into various languages.

Source: opennet.ru

Buy reliable website hosting with DDoS protection, VPS VDS servers 🔥 Buy reliable website hosting with DDoS protection, VPS VDS servers | ProHoster