- systemdはシステム管理に関する統合アプリケーション群で、従来のinitプロセスを置き換え、ユーザーセッション管理、デバイス管理、ロギング、タイミングなど多様な機能を含む
- 大半のLinuxユーザーはsystemdの長所と短所に関心がないが、一部には強く反対または支持する人もいる
- 主流のLinuxディストリビューションはsystemdを採用しており、これは主に一般的なデスクトップ環境での利点によるもの
組み込みLinuxでの問題
- 組み込みシステムでは、systemdの利点がむしろ欠点になり得る
- Raspberry Pi 3Bでのメモリ使用量を例にすると、systemdはSystemV initより多くのリソースを使用する
- systemd-journaldのようなsystemdのロギングデーモンも多くのリソースを消費する
- 組み込み環境ではより小さな代替が必要であり、systemdはこうした環境に最適化されていない
systemdの複雑さと起動時間
- systemdは起動時間を短縮できる場合もあるが、組み込みシステムではかえって起動時間が増えることがある。
- systemdの複雑さと機能は一般的な環境では必要でも、組み込み環境では不要なことが多い。
代替の不在
- systemdが置き換える多くのサービスには、組み込み環境向けにより小さく高速な代替が存在するが、一部はもはや代替がない
- たとえば、udevデーモンはsystemdプロジェクトに統合されており、独立した代替はほとんど存在しない
systemdの拡大と代替の減少
- systemdは多くの機能を含んでおり、ディストリビューション管理者にとっては便利である。
- systemdがますます多くの機能を取り込むにつれて、代替を維持する動機は弱まっている。
- これは組み込み環境でsystemdが適していない場合に問題を引き起こし得る。
結論
- systemdは組み込み環境では従来の代替より効果が低い可能性がある。
- 主流のLinuxディストリビューションでsystemdを使わないものを見つけるのは難しくなっている。
- systemdの拡大により、Linuxをsystemdなしで想像しにくい未来へ向かっている。
- 代替を開発または維持する備えが必要であり、systemdを使わないディストリビューションを継続して支援すべきである
4件のコメント
systemdだけの問題ではないでしょう……
busybox の init は、組み込み機器向けの systemd の優れた代替です。
そして、組み込み機器のような制約のあるシステムであれば、あえて udev を使うのではなく、固定された device node を root ファイルシステムに含めれば済みます。
私の場合はかなり特殊なケースではありますが、Galaxy TabにUbuntuを入れて、そこにVS Codeを入れて使っている身としては、systemdのせいで泣きたくなることがたまにありますね..
Hacker Newsの意見
systemdは多くの問題を解決しており、コミュニティも非常に応答性が高く助けになる
OpenEmbedded/Yocto、Devuan、Gentoo は複数の init システムを提供している
Rustysd は systemd の動作を一部再現するサービスマネージャーである
systemd を好む人たちは主にディストリビューション管理者である
Unix 哲学は小さなツール群が問題を解決するというものだ
runit はアプリケーションとサービスの監視に優れている
udev なしでも組み込みシステムを動かすことはできる
RPi は産業用制御ボードのフォームファクタをデスクトップへと変換した
Chimera Linux はサービス管理とログイン/シート管理において興味深い方向へ進んでいる
systemd のインストールサイズは組み込みLinuxで最大の問題である
systemd は250MBのRAMを使用するため、組み込みLinuxでは問題になる
SysVInit は外部ユーティリティに依存してプロセスを開始・停止する