5. ブートプロセス:Init

学んだように、initプロセスは Linux のブートプロセス中に最初に実行されるプロセスです。これは他のすべてのプロセスの親であり、システムを使用可能な状態にするために不可欠なサービスを起動する責任があります。

しかし、それはどのようにこれを達成するのでしょうか?

Linux の init システムには、サービス管理に対するアプローチが異なる 3 つの主要な実装があります。

System V Init

System V init(しばしばsysvinitと呼ばれます)は、Linux の従来の init システムです。これはスクリプトによって定義された順次起動手順に従います。システムの状態はランレベルによって管理され、各ランレベル(例:シングルユーザーモード、ネットワーキング付きマルチユーザーモード)には、起動または停止する特定のサービスセットがあります。これは、従来の Linux ブートプロセスにおける長年の標準でした。

Upstart

古い Ubuntu バージョンで見られる Upstart は、イベントベースの init システムです。これは System V の厳密な順次モデルから脱却しました。代わりに、Upstart は、ネットワークデバイスが利用可能になるなどのシステムイベントに応答して、サービス(ジョブと呼ばれる)を起動および停止します。これにより、より柔軟で高速なブート時間が可能になります。

systemd

Linux init システムの最新の標準はsystemdです。これは、依存関係を積極的に管理する目標指向のシステムです。単にサービスのリストを起動するのではなく、グラフィカルインターフェイスのようなターゲット状態を定義し、systemdはそのターゲットのすべての依存関係を満たすように動作し、多くの場合、サービスを並行して起動することでブートプロセスを大幅に高速化します。

ログインして学習進捗を保存

サインイン

演習

練習あるのみです!Linux プロセスとシステムがそれらをどのように管理するかについての理解を深めるための実践的なラボを次に示します。

  1. Linux プロセスの管理と監視 - フォアグラウンドおよびバックグラウンドプロセスの操作、psを使用した検査、topを使用したリソースの監視、killを使用した終了を練習します。このラボは、initの動作の基本であるプロセスのライフサイクルと制御を理解するのに役立ちます。

これらのラボは、これらの概念を実際のシナリオに適用し、Linux プロセス管理に対する自信を構築するのに役立ちます。

クイズ

init の最新の標準は何ですか?(小文字の英字のみで回答してください)