systemd システムマネージャーリリース 251

251 か月の開発期間を経て、システム マネージャー systemd XNUMX がリリースされました。

主な変更点:

  • システム要件が増加しました。 サポートされる Linux カーネルの最小バージョンが 3.13 から 4.15 に増加しました。 動作には CLOCK_BOOTTIME タイマーが必要です。 ビルドするには、C11 標準と GNU 拡張機能をサポートするコンパイラが必要です (ヘッダー ファイルには C89 標準が引き続き使用されます)。
  • 実験的ユーティリティ systemd-sysupdate を追加しました。これは、パーティション、ファイル、またはディレクトリを置き換えるためのアトミック メカニズムを使用して更新を自動的に検出、ダウンロード、インストールします (XNUMX つの独立したパーティション/ファイル/ディレクトリが使用され、XNUMX つは現在の作業リソースを含み、もう XNUMX つはインストールされます)次回の更新後、セクション/ファイル/ディレクトリが交換されます)。
  • 新しい内部共有ライブラリ libsystemd-core- を導入しました。 .so。これは /usr/lib/systemd/system ディレクトリにインストールされ、既存の libsystemd-shared-library に対応します。 。それで。 libsystemd-core-共有ライブラリの使用.so を使用すると、バイナリ コードを再利用することで全体のインストール サイズを削減できます。 バージョン番号は、meson ビルド システムの「shared-lib-tag」パラメーターを介して指定でき、ディストリビューションがこれらのライブラリの複数のバージョンを同時に出荷できるようになります。
  • 監視対象ユニットの情報から環境変数 $MONITOR_SERVICE_RESULT、$MONITOR_EXIT_CODE、$MONITOR_EXIT_STATUS、$MONITOR_INVOCATION_ID、$MONITOR_UNIT の OnFailure/OnSuccess ハンドラーへの転送を実装しました。
  • ユニットについては、ExtensionDirectories 設定が実装されており、ディスク イメージではなく通常のディレクトリからのシステム拡張コンポーネントの読み込みを整理するために使用できます。 システム拡張ディレクトリの内容は、OverlayFS を使用してオーバーレイされ、/usr/ および /opt/ ディレクトリの階層を拡張し、実行時にファイルを追加するために使用されます (ディレクトリが読み取り専用でマウントされている場合でも)。 「portablectlattach --extension=」コマンドでは、ディレクトリの指定のサポートも追加されました。
  • システムのメモリ不足により systemd-oomd ハンドラによって強制終了されたユニットの場合、「oom-kill」属性が送信され、強制終了の回数が「user.oomd_ooms」属性に反映されます。
  • ユニットの場合、新しいパス指定子 %y/%Y が追加され、ユニットへの正規化されたパスが反映されます (シンボリック リンクの拡張により)。 PRETTY_HOSTNAME 値を置換するための %q 指定子と、CREDENTIALS_DIRECTORY 置換用の %d も追加されています。
  • 通常のユーザーが「--user」フラグを使用して起動した特権のないサービスでは、RootDirectory、MountAPIVFS、ExtensionDirectories、*Capabilities*、ProtectHome、*Directory、TemporaryFileSystem、PrivateTmp、PrivateDevices、PrivateNetwork、NetworkNamespacePath、PrivateIPC、IPCNamespacePath の設定が変更されます。 、PrivateUsers、ProtectClock 、ProtectKernelTunables、ProtectKernelModules、ProtectKernelLogs、および MountFlags が許可されます。 この機能は、システムでユーザー名前空間が有効になっている場合にのみ使用できます。
  • LoadCredential 設定では、引数としてディレクトリ名を指定できます。この場合、指定されたディレクトリ内のすべてのファイルから資格情報のロードが試行されます。
  • systemctl の「-timestamp」パラメータで、時刻をエポカル形式(1 年 1970 月 XNUMX 日からの秒数)で表示する「unix」フラグを指定できるようになりました。
  • 「systemctl status」は、「old-kernel」フラグを実装します。このフラグは、セッションにロードされたカーネルのバージョン番号が、システムで使用可能なベース カーネルよりも古い場合に表示されます。 また、/bin/ および /sbin/ ディレクトリの内容が /usr へのシンボリックリンクを介して形成されていないことを判断するための「unmerged-usr」フラグも追加されました。
  • PID 1 プロセスによって開始されるジェネレーターの場合、新しい環境変数が提供されます: $SYSTEMD_SCOPE (システムまたはユーザー サービスから開始)、$SYSTEMD_IN_INITRD (initrd またはホスト環境から開始)、$SYSTEMD_FIRST_BOOT (最初のブート インジケーター)、$SYSTEMD_VIRTUALIZATION (仮想化の存在またはコンテナ内での起動 ) および $SYSTEMD_ARCHITECTURE (カーネルが構築されたアーキテクチャ)。
  • PID 1 ハンドラーは、QEMU fw_cfg インターフェイスから、またはカーネル コマンド ラインで systemd.set_credential パラメーターを指定することによって、システム資格情報パラメーターをロードする機能を実装します。 LoadCredential ディレクティブは、相対パスが引数として指定されている場合、/etc/credstore/、/run/credstore/、および /usr/lib/credstore/ ディレクトリ内の資格情報の自動検索を提供します。 同様の動作が LoadCredentialEncrypted ディレクティブにも適用され、/etc/credstore.encrypted/、/run/credstore.encrypted/、および /usr/lib/credstore.encrypted/ ディレクトリがさらにチェックされます。
  • JSON 形式でエクスポートする機能が systemd-journald で安定しました。 「journalctl --list-boots」および「bootctl list」コマンドは、JSON 形式 (「--json」フラグ) での出力をサポートするようになりました。
  • hwdb データベースを含む新しいファイルが udev に追加されました。このファイルには、ポータブル デバイス (PDA、電卓など) およびサウンドとビデオの作成に使用されるデバイス (DJ コンソール、キーパッド) に関する情報が含まれています。
  • 新しいオプション「--prioritized-subsystem」が udevadm に追加され、次のシステムの優先順位を設定します (ブロックデバイスと TPM を最初に処理するために systemd-udev-trigger.service で使用されます)、「-type=all」、「-initialized」 -match」および「--initialized-nomatch」は初期化済みまたは初期化されていないデバイスを選択し、「udevadm info -tree」は /sys/ 階層内のオブジェクトのツリーを表示します。 udevadm は、デバイス エントリがデータベースに表示されるのを待機し、パーティション テーブルのフォーマットまたは書き込み中にブロック デバイスをロックする新しい「wait」および「lock」コマンドも追加します。
  • デバイス /dev/disk/by-diskseq/ に新しいシンボリック リンクのセットを追加しました。 ブロックデバイスをシリアル番号 (「diskseq」) で識別します。
  • [Match] セクションの .link ファイルに、デバイスをファームウェアの説明と行ごとに照合するための「Firmware」パラメータのサポートが追加されました。
  • systemd-networkd では、[Route] セクションで設定されたユニキャスト ルートのスコープ値が、「ip Route」コマンドの動作と一致するようにデフォルトで「link」に変更されました。 Isolated=true|false パラメーターが [Bridge] セクションに追加され、カーネル内のネットワーク ブリッジに同じ名前の属性を設定します。 [Tunnel] セクションに、トンネル タイプを外部 (メタデータ収集モード) に設定するために、外部パラメーターが追加されました。 [DHCPServer] セクションに、PXE モードで起動するときに DHCP サーバーによって送信されるサーバー アドレス、サーバー名、およびブート ファイル名を構成するための BootServerName、BootServerAddress、および BootFilename パラメーターが追加されました。 [Network] セクションでは、L2TP パラメーターが削除され、代わりに .netdev ファイルで、L2TP インターフェイスに関連する新しいローカル設定を使用できます。
  • 新しいユニット「systemd-networkd-wait-online@」を追加しました.service」を使用すると、特定のネットワーク インターフェイスが起動するのを待つことができます。
  • .netdev ファイルを使用して仮想 WLAN デバイスを作成できるようになりました。仮想 WLAN デバイスは [WLAN] セクションで構成できます。
  • .link/.network ファイルでは、[Match] セクションに、デバイス タイプ (「bond」、「bridge」、「gre」、「tun」、「veth」) による照合用の Kind パラメーターが実装されています。
  • systemd-resolved は、initrd イメージに systemd-resolved が存在する場合の initrd からの起動を含め、初期のブート段階で起動されています。
  • systemd-cryptenroll は、資格情報の暗号化アルゴリズムを選択するための --fido2-credential-algorithm オプションと、TPM を使用してパーティションのロックを解除するときに PIN 入力を制御するための --tpm2-with-pin オプションを追加します。 同様の tpm2-pin オプションが /etc/crypttab に追加されました。 TPM 経由でデバイスのロックを解除する場合、暗号化キーの傍受から保護するために設定が暗号化されます。
  • systemd-timesyncd は、IPC 経由で NTP サーバーから情報を動的に取得するための D-Bus API を追加します。
  • カラー出力の必要性を判断するために、すべてのコマンドは、以前にチェックされた NO_COLOR、SYSTEMD_COLORS、および TERM に加えて、COLORTERM 環境変数のチェックを実装します。
  • Meson ビルド システムは、必要なコンポーネント (pam、nss、devel (pkg-config)、systemd-boot、libsystemd、libudev) を選択的にアセンブリおよびインストールするための install_tag オプションを実装しています。 systemd-journald および systemd-coredump の圧縮アルゴリズムを選択するビルド オプション default-compression を追加しました。
  • BitLocker TPM で Microsoft Windows を起動するために、loader.conf の sd-boot に実験的な「reboot-for-bitlocker」設定を追加しました。

出所: オープンネット.ru

コメントを追加します