Redoxオペレーティングシステムの開発者が発表 最近 彼らが紹介したこと 新しいパッケージマネージャー pkgar、 これはシステム内で使用されます。
レドックスを知らない人のために これ それはオペレーティングシステムです その その主な焦点は、その開発がRust言語とマイクロカーネルの概念を使用していることです。 プロセスとリソース管理の間の相互作用のみがカーネルレベルで提供され、他のすべての機能は、カーネルエージェントとユーザーエージェントの両方が使用できるライブラリに引き継がれます。
プロジェクトの一環として、 新しいパッケージフォーマットが開発されています、 パッケージ管理機能と、暗号で検証されたファイルのコレクションを作成および抽出するためのコマンドラインツールを備えたライブラリ。
pkgar形式は普遍的なものではありません また、RedoxOSオペレーティングシステムの詳細を考慮して最適化されています。
パッケージマネージャー デジタル署名と整合性チェックによるソース検証をサポートします。 チェックサムは、blake3ハッシュ関数を使用して計算されます。 pkgarのチェック機能には、実際にパッケージファイルを保存せずに、ヘッダー部分のみを操作してアクセスできます。
特に パッケージはヘッダーファイルで構成されています (.pkgar_head)およびデータファイル(.pkgar_data)。 適切に署名されたフルダイジェストパケット(.pkgar)は、ヘッダーファイルをデータファイルに添付するだけで取得できます。
ヘッダーファイルには、データファイルのヘッダーとパラメーター化された構造の個別のチェックサム、およびパケットを検証するためのデジタル署名が含まれています。
データファイルには、提供されたすべてのファイルとディレクトリの順次リストが含まれています パッケージに含まれています。 各データ要素の前に、データ自体のチェックサム、サイズ、アクセス権、インストールするファイルの相対パス、次のデータ要素のパラメーターのオフセットを含むメタデータを含む構造があります。
更新プロセス中に個々のファイルが変更されておらず、チェックサムが一致する場合、それらはスキップされ、ダウンロードされません。
ソースの整合性は、ヘッダーファイルのみを取得し、選択したデータファイルの正確性は、このファイルからパラメーターを含む構造のみをロードし、ヘッダーファイルでチェックされたチェックサムと一致することを確認することで確認できます。
直接、データ自体は、データの前にあるパラメーターを持つ構造のチェックサムを使用して、ダウンロード後に検証できます。
当初、パッケージは繰り返し可能なアセンブリの可能性を意味します。つまり、特定のディレクトリ用のパッケージを作成すると、常に同一のパッケージが形成されます。 インストール後、メタデータのみがシステムに保存されます。これは、インストールされたデータからパッケージを再構築するのに十分です(パッケージ構成、チェックサム、パス、およびアクセス権はメタデータで使用できます)。
pkgarの主な目的:
- アトミック: 更新 可能な限り適用する 自動的に.
- トラフィックの節約: データは、ハッシュが変更された場合にのみネットワーク経由で送信されます(更新中に更新されたファイルのみがダウンロードされます)。
- 高速で高性能な暗号化アルゴリズムが含まれます(blake3は、ハッシュを計算するときにデータ処理の並列化をサポートします)。 リポジトリデータが以前にキャッシュされていない場合は、起動時にダウンロードされたデータのハッシュを計算できます。
- ミニマリズム: 他の形式とは異なり、pkgarには、パッケージの抽出に必要なメタデータのみが含まれています。
- インストールディレクトリの独立性: すべてのユーザーが任意のディレクトリにパッケージをインストールできます(ユーザーには、選択したディレクトリに書き込む権限が必要です)。
- セキュリティ: パケットは常に暗号で検証され、実際のパケット操作が実行される前に検証が行われます(ヘッダーが最初にロードされ、デジタル署名が正しい場合、データは一時ディレクトリに転送され、検証後にディレクトリの宛先に移動されます)。