init システムの比較
From Gentoo Wiki
この記事は init システムを対比させ比較します。以下で比較される init システムには、Gentoo で利用可能なものもあれば、そうでないもの (例えば launchd や SMF) もあります。
利用可能なソフトウェア
機能 | init システム | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
sysvinit | OpenRC | upstart | systemd | SMF | launchd | Epoch | finit | runit | s6 + s6-rc | 66 + 66-rc | BSD rc.d | dinit | |
Gentoo でサポートされているか | 部分的 (OpenRC によって使用される) | はい (デフォルトの init) | いいえ | はい | いいえ | いいえ | はい | いいえ | はい | いいえ | いいえ | いいえ | いいえ |
パッケージ / バグ# | sys-apps/sysvinit | sys-apps/openrc | bug #498376 unity-gentoo オーバーレイの sys-apps/upstart。 |
sys-apps/systemd | - | - | sys-apps/epoch | - | sys-process/runit | sys-apps/s6 + sys-apps/s6-rc | - | - | - |
対応プラットフォーム | Linux / BSD | Linux + BSD | Linux | Linux | Solaris | MacOSX | Linux | Linux | Linux / BSD / MacOSX | Linux / BSD / MacOSX | Linux | BSD | Linux / BSD / MacOSX |
主な実装言語 | C | POSIX シェル (+ C) | C | C | C | C | C | C | C | C | C | POSIX シェル (+ C) | C++ |
主な依存 | - | init (sysv または BSD) | D-Bus | D-Bus | init(sysv?) | - | libc, /bin/sh | ? | - | skalibs, execline | s6, s6-rc | rcorder | - |
init スクリプト/サービスのフォーマット | 単一コンフィグファイル | シェルスクリプト | コンフィグファイル + シェルの断片 | コンフィグファイル (ini) | XML (+ シェルスクリプト) | plist | 複数または単一の .conf | 複数または単一の .conf | シェルスクリプト | execline またはシェルスクリプト | コンフィグファイル + execline の断片 | シェルスクリプト | コンフィグファイル |
サービスごとの設定 | いいえ | はい (conf.d) | ジョブ内機構によって (通常終了、リスポーン) | はい | はい (サービスインスタンス) | ? | はい (v1.1+) | ? | いいえ | いいえ | はい | いいえ | はい |
Running as a daemon | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (invoked) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) | Yes (sys-apps/s6-linux-init) | Yes (PID 1) | Yes (PID 1) | Yes (PID 1) |
サービス間依存/イベント | いいえ | はい | はい | はい | はい | いいえ | はい (基本的なサポート、v1.3+) | ? | はい | はい | はい | はい | はい |
並列サービススタートアップ | はい | はい (オプション) | はい | はい | はい | はい | いいえ | はい | はい | はい | はい | はい | はい |
デーモンの死活監視 | はい | はい (オプション、v0.21+、supervise-daemon を利用して) | はい | はい | はい | はい | はい | はい | はい | はい | はい | はい | はい |
サービスファイルの好ましい提供者 | n/a | Gentoo | Ubuntu | upstream | Solaris | MacOSX | n/a | n/a | Void Linux | Artix Linux | Obarun | NetBSD, FreeBSD, OpenBSD | n/a |
ライセンス | GPL v2+ | 2-cl. BSD | GPL v2 | LGPL v2.1+ | ? | Apache License 2.0 | Unlicense | MIT | BSD | ISC | ISC | BSD | Apache License 2.0 |
(Gentoo で) 対応されているサービス
機能 | OpenRC | systemd |
---|---|---|
ファイルシステムのマウント | グループ (root, local, network, swap など) 毎に 1 つのスクリプト。 | 依存関係とともに実行時に生成される、マウントポイント毎に 2 つのユニット (fsck + mount)。 |
getty (ターミナルプロンプト) | /etc/inittab または agetty スクリプトによって開始されます。 | テンプレートから必要に応じてインスタンス化される、コンソール毎に 1 つのユニット。 |
ネットワークの構成 | dhcpcd[1][2], netifrc, iwd, または NetworkManager [3] などの複数の選択肢。 | 統合された (systemd-networkd)、または先述した外部オプションのいずれかを使用して。 |
X11 ディスプレイマネージャの構成 | すべての DM に対する単一のサービス (自動 restart する必要があります)。 | 個別のディスプレイマネージャユニット。 |
関連項目
- Runit — lightweight process supervision suite, originally inspired by daemontools-inspired that offers fast and reliable service management.
- S6 and s6-rc-based init system — an init system built using components from the s6, s6-rc and s6-linux-init packages
- OpenRC — システムが提供する init システムと互換性のある、Unix 系システムのための依存関係ベースの init システム (openrc-init サブ記事を確認してください)。
- User:AdibSaad/66
外部資料
- s6 - Forum thread
- Forum thread
- openrc-init
- GNU shepherd - GNU OS のためのサービスマネージャ。
- [1] - dinit のオリジナルメンテナ
- 66tools-overlay
- 66tools-overlay のオリジナルメンテナ
- dinit のオリジナルメンテナ