プロジェクトに XNUMX 年間取り組んだ後、SerpentOS ディストリビューションの開発者は、以下を含むメイン ツールキットをテストする可能性を発表しました。
- mossパッケージマネージャー
- 苔コンテナコンテナシステム。
- moss-deps 依存関係管理システム。
- ボルダー組立システム。
- アバランチサービス隠蔽システム。
- 船舶保管庫マネージャー。
- 頂上のコントロールパネル。
- moss-dbデータベース。
- 再現可能なブートストラップ システムの請求書。
パブリック API とパッケージ レシピが利用可能です。 ツールキットの開発には主に D プログラミング言語が使用され、コードは Zlib ライセンスの下で配布されます。 パッケージは YAML 構成言語で記述され、次のような独自の .stone バイナリ形式に組み込まれます。
- パッケージのメタデータとその依存関係。
- 他のパッケージに対するシステム内のパッケージの位置に関する情報。
- キャッシュされたデータのインデックス。
- 動作に必要なパッケージファイルの内容です。
moss パッケージ マネージャーは、パッケージ操作の従来のビューを維持しながら、eopkg/pisi、rpm、swupd、nix/guix などのパッケージ マネージャーによって開発された最新の機能の多くを借用しています。 すべてのパッケージはデフォルトでステートレスに構築されており、パッケージの競合解決やマージ操作が必要な状況を避けるために、オペレーティング システム以外のファイルは含まれていません。
パッケージ マネージャーは、rootfs の状態を修正するアトミック システム更新モデルを使用し、更新後に状態が新しい状態に切り替わります。 その結果、更新中に問題が発生した場合、変更を以前の動作状態にロールバックすることができます。
ハード リンクと共有キャッシュに基づく重複排除は、複数のバージョンのパッケージを保存するときにディスク領域を節約するために使用されます。 インストールされたパッケージの内容は、/os/store/installation/N ディレクトリにあります (N はバージョン番号です)。 ベース ディレクトリは、このディレクトリの内容を参照します (たとえば、/sbin は /os/store/installation/0/usr/bin を指し、/usr は /os/installation/0/usr を指します)。
パッケージのインストール プロセスは次の手順で構成されます。
- インストール用のレシピ (stone.yml) を作成します。
- ボルダーを使用してパッケージを構築する;
- 必要なメタデータを含む .stone 形式のバイナリ パッケージを取得します。
- パッケージをデータベースに入力します。
- mossパッケージマネージャーを使用したインストール。
旧 Solus 配布チームがこのプロジェクトに結集しました。 たとえば、SerpentOS ディストリビューションは、Solus ディストリビューションの作成者である Ikey Doherty と、Budgie デスクトップの主要な開発者である Joshua Strobl によって開発されています。彼は以前に Solus コア チームからの離脱とインタラクションを担当するリーダーの権限の放棄を発表しました。開発者と協力してユーザー インターフェイスを開発します (Experience Lead)。
SerpentOS 開発者は、D プログラミング言語の知識を持つ人々に、コア ツールキットの開発に参加したり、パッケージ レシピの作成に参加するよう呼びかけています。また、技術者以外の人々には、ドキュメントをさまざまな言語に翻訳するのを手伝ってもらうよう求めています。
出所: オープンネット.ru