Linux で広く使用されているシステムおよびサービス マネージャーである systemd のバージョン 248 では、読み取り専用ファイル システムでもシステム ファイルを追加したり、追加されたように見せかけたりできるように設計された、システム拡張イメージと呼ばれる機能が追加されました。
開発者の Lennart Poettering 氏は次のように説明しています。「システム拡張イメージがアクティブ化されると、その /usr/ および /opt/ 階層と os-release 情報が、overlayfs を介してホスト OS のファイルシステム階層と結合されます。」
システム拡張イメージの主な使用例は、Red HatのSilverblueやKinoiteのような不変のオペレーティングシステムです。これらのOSでは、ファイルシステムは読み取り専用であり、パッチ適用ではなく新しいイメージに置き換えることで更新されるため、セキュリティと安定性の両方が向上します。
Kinoite: KDE Plasma デスクトップを搭載した不変の Fedora バリアントが登場
続きを読む
これは、システムファイルの更新を必要とするアプリケーションでは互換性の問題を引き起こし、より高い柔軟性を求める開発者にとっては困難です。通常、これらの問題は仮想マシンやコンテナを実行することで解決されますが、システム拡張イメージを使用すると、ユーザーや開発者は不変のファイルシステムを実際に変更することなく、システムファイルを更新または追加できます。開発者はデバッグツールを追加したり、システムファイルを含む新しくコンパイルされたビルドをインストールしたりできます。
「システム拡張イメージは、依存関係スキームが利用できないため、汎用ソフトウェア パッケージ フレームワークであると誤解しないでください。システム拡張は、基礎となるホスト システム イメージに既に出荷されているファイルを除き、必要なファイルをすべて自身で運ぶ必要があります。
「通常、システム拡張イメージはベースOSイメージと同時に、同じビルドシステム内でビルドされます」とドキュメントには記載されています。システム拡張イメージはプランディレクトリまたはディスクイメージとして提供され、systemd-sysextコマンドで有効化または無効化できます。
Poettering氏は投稿の中で、その他の新機能についても紹介しています。ブロックデバイスの整合性を暗号的にチェックするdm-verity整合性保護を設定するための新しい設定ファイル/etc/veritytabと、新しいカーネルコマンドラインオプションsystemd.verity.root_optionsが追加されました。
systemd-oomdにも改良が加えられ、空きメモリが非常に少なくなった場合に是正措置を講じるように設計されています。Poettering氏は、「ユニットのcgroupがメモリ不足の制限を超えた場合にアクションを実行するまでの時間を設定できる、新しいDefaultMemoryPressureDurationSec=設定が追加されました」と述べ、さらに「systemd-oomdは現在、完全にサポートされているとみなされます(通常の後方互換性の保証が適用されます)」と付け加えました。
最後に、包括的なブランチ名への傾向に従って、systemd のメイン Git 開発ブランチの名前が「main」に変更されました。
systemd の新リリースは約 4 か月ごとにリリースされ、前回のリリースは 2020 年 11 月でした。®