ウェブサイト検索

最新の Linux 'init' システム ベスト 6 (1992 ~ 2023)


Linux やその他の Unix 系オペレーティング システムでは、init (初期化) プロセスはブート時にカーネルによって実行される最初のプロセスであり、プロセスID ( >PID) の 1。システムがシャットダウンされるまでバックグラウンドで実行されます。

init プロセスは、他のすべての Linux プロセス、つまりデーモン、サービス、その他のバックグラウンド プロセスを開始するため、システム上の他のすべてのプロセスのマザーとなります。

プロセスはシステム上で他の多くの子プロセスを開始できますが、親プロセスが終了するとinit が孤立プロセスの親になります。

長年にわたって、 多くのinit システムが主要な Linux ディストリビューションに登場してきました。このガイドでは、Linux オペレーティング システムで使用できる最高の init システムのいくつかを見ていきます。

1. システム V の初期化

System V (SysV) は、Unix 系オペレーティング システム上で成熟し人気のあるinit スキームであり、Unix/Linux システム上のすべてのプロセスの親です。 SysV は、最初に設計された商用 Unix オペレーティング システムです。

カスタム init を持つGentooとBSD スタイルの init スキームを使用する Slackware を除き、ほとんどすべての Linux ディストリビューションは最初にSysV init スキームを使用していました。

年月が経ち、いくつかの不完全さのため、Linux 用のより効率的で完璧な init システムを作成するために、 いくつかの SysV init の代替品が開発されました。

これらの代替案はSysV の改善を目指しており、おそらく新しい機能を提供しますが、元のSysV init スクリプトとの互換性はまだあります。

2.システムD

SystemD は、Linux プラットフォーム上の比較的新しい init スキームです。これはFedora 15 で導入され、システム管理を容易にするための各種ツールです。主な目的は、ブート プロセスおよびシステムの実行中にすべてのシステム プロセスを初期化し、管理し、追跡することです。

Systemd init は、実際のシステムおよびサービス管理へのアプローチの仕方において、他の従来の Unix init システムとは包括的に異なります。 SysV および LBS 初期化スクリプトとも互換性があります。

次のような優れた機能がいくつかあります。

  • すっきり、わかりやすく、効率的なデザイン
  • 起動時の同時並列処理
  • より優れた APIv
  • オプションのプロセスの削除を可能にします
  • Journald を使用したイベント ログのサポート
  • systemd カレンダー タイマーを使用したジョブ スケジュールのサポート
  • バイナリファイルでのログの保存
  • 将来の参照のために systemd 状態を保存する
  • GNOME およびその他の機能との統合の向上

3.成り上がり者

Upstart は、SysV init システムの代替としてUbuntu のメーカーによって開発されたイベントベースの init システムです。さまざまなシステム タスクとプロセスを開始し、システムの実行中にそれらを検査し、システムのシャットダウン中にそれらを停止します。

これはSysV 起動スクリプトとSystemd スクリプトの両方を使用するハイブリッド init システムであり、Upstart init システムの注目すべき機能には次のようなものがあります。

  • 元々は Ubuntu Linux 用に開発されましたが、他のすべてのディストリビューションでも実行できます
  • イベントベースのタスクとサービスの開始と停止
  • タスクやサービスの開始時と停止時にイベントが生成される
  • イベントは他のシステムプロセスによって送信される可能性があります
  • D-Bus を介した init プロセスとの通信
  • ユーザーはプロセスを開始および停止できます
  • 突然終了したサービスの再生成など

4.OpenRC

OpenRC は、Unix 系オペレーティング システム用の依存関係ベースのinit スキームであり、SysV init と互換性があります。 OpenRC は Sys V にいくつかの改善をもたらしますが、OpenRC は /sbin/init ファイルの完全な代替品ではないことに留意する必要があります。

次のような優れた機能を提供します。

  • Gentoo を含む他の多くの Linux ディストリビューションや BSD 上でも実行できます。
  • ハードウェアで開始される init スクリプトをサポート
  • 単一の構成ファイルをサポートします
  • サービスごとの構成はサポートされていません
  • デーモンとして実行
  • 並列サービスの起動など

5. ルニット

runit は、GNU/Linux、Solaris、*BSD、および Mac OS X 上で実行できるクロスプラットフォームの init システムでもあり、サービス監視を提供する SysV init の代替となります。

これには、SysV init や Linux の他の init システムには見られない利点と注目すべきコンポーネントが含まれており、次のようなものがあります。

  • サービス監視。各サービスはサービス ディレクトリに関連付けられます。
  • クリーンなプロセス状態は、各プロセスがクリーンな状態であることを保証します
  • 信頼性の高いロギング機能を備えています
  • 高速なシステム起動とシャットダウン
  • ポータブルでもあります
  • 包装に優しい
  • 小さいコードサイズなど

6.s6

s6 は、デーモンツールrunitと同様に、プロセス監視用に調整された UNIX 用のコンパクトなツール セットを提供します。プロセスとデーモンの操作が容易になります。

低レベルのサービス管理ツールキットとして設計された s6 は、独立して機能することも、そのフレームワーク内で機能することもできる多様なツールを提供します。これらのツールを組み合わせると、最小限のコードで堅牢な機能を実現できます。

前に述べたように、init システムは Linux システム上の他のすべてのプロセスを開始し、管理します。さらに、SysV は Linux オペレーティング システムの主要な init スキームですが、パフォーマンス上の弱点がいくつかあるため、システム プログラマはこれに代わるものをいくつか開発しました。

ここでは、それらの代替品のいくつかを取り上げましたが、このリストで言及する価値があると思われる他の init システムがある可能性があります。以下のコメント欄からお知らせください。