Systemd が postmarketOS に加わり、GNOME と KDE の機能を保証します

ポストマーケットOSのsystemd

ポストマーケットOSのsystemd

postmarketOSプロジェクトの開発者たちは先日、ブログ記事でシステムビルドにsystemdを追加したことを発表した。systemdサポートを実装する主な理由は、 GNOMEとKDEがsystemdコンポーネントへの依存度を高めている現状において、 OpenRCベースの初期化スタックを維持することが困難になっているためだ

システム管理者として systemd を使用できるようになったのは、1 年の作業を経て、OpenRC 初期化システムの代わりに systemd を使用したプロトタイプのセットアップが準備され、テストに使用できるようになりました。

systemdが追加されたにもかかわらず、 postmarketOSでOpenRCベースのビルドを作成するサポートは、少なくともこのシステムがAlpine Linuxで使用されている限り継続されると述べられています。pmbootstrapを使用してpostmarketOSイメージを作成する際に、OpenRCを選択するオプションが利用可能になります。さらに、OpenRCは、SwayコンポジットマネージャをベースとしたSxmo(Simple X Mobile)グラフィカルシェルを扱うアセンブリの開発者によって引き続き使用されます。

一方、systemd のビルドは引き続き Alpine Linux の基本パッケージをベースに行われます。ただし、このディストリビューションは公式には systemd をサポートしておらず、systemd と互換性のある Glibc C の代わりに Musl C ライブラリを使用しています。postmarketOS の開発者は、systemd と Musl C を統合するための追加パッチを実装しており、将来的には systemd の開発者と協力してこの統合を簡素化する予定です。

もちろん、これは簡単な作業ではありません。KDE および GNOME 開発者とより緊密に連携するときに遭遇する主な障害の 1 つは、OpenRC ベースのスタックに問題があることです。 KDE と GNOME を動作させるために、OpenRC に加えて多くの systemd ポリフィルを使用します。したがって、技術的には「systemd を使用していません」が、実際には、KDE ​​と GNOME を実行するためにそのコンポーネントの大部分をすでに使用しており、それらのコンポーネントのバージョンが異なるだけです。

systemdベースのGNOMEとKDEの機能を確保するためには、いくつかの追加レイヤーを維持する必要がありました。さらに、systemdを使用しない場合、これらのレイヤーを適切に維持し、GNOMEとKDEの開発と同期させる必要があり、これは開発者による継続的なメンテナンスにおいて大きな課題と不確実性をもたらしました。

さらに、開発者によると、postmarketOS ではホスト名付き、ローカライズ済み、タイムスタンプ付きのサービスとの互換性を確保するために、いくつかのレイヤーとパッケージが実装されたとのことです。これには、ホスト名付きサービスの互換性のためにopenrc-settingsd を使用すること、デバイス管理に udev の代わりに eudev を使用すること、ユーザーセッション管理に logind の代わりに elogind を使用すること、ログ管理にjournaldの代わりにlogbookd を使用することなどが含まれます。また、superd パッケージを使用して「 systemd --user 」と同様の機能を提供し、 systemd.timer をwakedに置き換えました

しかし、適切なメンテナンスとサポートが保証されているのは、openrc-settingsd と eudev のみです。elogind、logbookd、superdなどのプロジェクトは、必要な機能がいくつか欠けているため、まだ改善が必要です。また、 waked は約 1 年間メンテナンスされていません。さらに、KDE ​​Plasma Mobile の開発者は、デバッグを簡素化するためにsystemd-coredumpd を使用することに関心を示していましたが、その後継であるcorecollector は2020 年以降メンテナンスされていません。

これらのサービスは、GNOMEやその他のアプリケーションのさまざまな機能に必要です。たとえば、hostnamed、localized、timedatedが提供するD-Bus APIは、GNOMEでロケールとタイムゾーンの設定を変更するために使用されます。Udevは接続されたデバイスを管理するために必要であり、logind、systemd --user 、journaldはgnome-sessionでユーザーセッションを管理するために使用されます。GNOME Clockはその機能のためにsystemd.timerを使用します。

systemdベースのビルドで実装できる新機能としては、きめ細かな権限管理、セキュリティを確保しサービス間の依存関係を管理するための高度な機能の使用、cgroupsとの完全な統合、必要に応じてサービスを開始するためのソケットのアクティベーション(例えば、CUPSはネットワークポートにアクセスしている場合にのみ起動できる)、およびブートプロセスを分析するための組み込みツールの利用などが挙げられます。

最後に、これについてさらに詳しく知りたい場合は、以下のリンクから詳細をご覧いただけます。


Googleで優先ソースとして追加する