SerpentOS toolkit available for testing

After two years of work on the project, the developers of the SerpentOS distribution announced the possibility of testing the main toolkit, which includes:

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

Public API and package recipes available. To develop the toolkit, the D programming language is mainly used, and the code is distributed under the Zlib license. Packages are written in the YAML configuration language and built into their own .stone binary format, which includes:

  • Package metadata and its dependencies;
  • Information about the location of the package in the system relative to other packages;
  • Index of cached data;
  • The contents of the package files required for operation.

The moss package manager borrows many of the modern features developed by package managers such as eopkg/pisi, rpm, swupd, and nix/guix, while retaining the traditional view of package manipulation. All packages are built stateless by default and do not include non-operating system files to avoid situations that require package conflict resolution or merge operations.

The package manager uses the atomic system update model, which fixes the state of the rootfs, and after the update, the state is switched to the new one. As a result, if there are any problems during the update, it is possible to roll back the changes to the previous working state.

Deduplication based on hard links and shared cache is used to save disk space when storing multiple versions of packages. The contents of installed packages are located in the /os/store/installation/N directory, where N is the version number. Base directories are referenced to the contents of this directory (for example, /sbin points to /os/store/installation/0/usr/bin, and /usr points to /os/installation/0/usr).

The package installation process consists of the following steps:

  • Writing a recipe for installation (stone.yml);
  • Building a package using boulder;
  • Obtaining a binary package in .stone format with the necessary metadata;
  • Entering packages into the database;
  • Installation with the moss package manager.

The old Solus distribution team rallied around the project. For example, the SerpentOS distribution is being developed by Ikey Doherty, creator of the Solus distribution, and Joshua Strobl, a key developer of the Budgie desktop, who previously announced his departure from the Solus Core Team and retired powers of the leader responsible for interaction with developers and development of the user interface (Experience Lead).

The SerpentOS developers are calling on people with knowledge of the D programming language to join the development of the core toolkit and/or writing package recipes, and non-technical people are being asked to help translate the documentation into various languages.

Source: opennet.ru

Add a comment