init
がコンピューターの起動とランレベルの管理に必要な魔法のプログラムであることはすでに知っていますが、本当の目的は何ですか?
そもそもなぜinit
が必要なのでしょうか?ブートローダーがUpstartに実行するプログラムと実行しないプログラムを指示できないのはなぜですか?
この質問は、私の init
が削除されたらどうなりますか?質問への(遅い)応答です。
nixシステムのinit
のマニュアル を参照してください。
これは init
のWikipediaエントリ からの投稿です。
Unixベースのコンピューターオペレーティングシステムでは、init(初期化の略)はコンピューターシステムの起動中に開始される最初のプロセスです。 Initは、システムがシャットダウンされるまで実行を継続するデーモンプロセスです。他のすべてのプロセスの直接または間接の祖先であり、孤立したプロセスをすべて自動的に採用します。 Initは、ハードコーディングされたファイル名を使用してカーネルによって起動され、カーネルが起動できない場合、カーネルパニックが発生します。通常、Initにはプロセス識別子1が割り当てられます。
Initの設計は、System IIIやSystem VなどのUnixシステムでは、Research UnixおよびそのBSD派生物のinitによって提供される機能とは異なります。ほとんどのLinuxディストリビューションでの使用はSystem Vとある程度互換性がありますが、Slackwareなどの一部のディストリビューションはBSDスタイルを使用し、Gentooなどの他のディストリビューションには独自のカスタマイズバージョンがあります。
標準バージョンの設計上の制限に対処するために、いくつかの代替のinit実装が記述されています。これらには、launchd、Service Management Facility、systemd、およびUpstartが含まれます。後者はUbuntuやその他のLinuxディストリビューションで使用されています。
これがあなたにそれを説明するのを助けることを望みます;たくさんの読書です。
upstart
およびsystemd
はinit
システムです。慣例(およびおそらく他の制約)により、プログラムはinit
またはsystemd
または他の何かが再生中かどうかに関係なく、upstart
と呼ばれます。プロセス名にだまされてはいけません。 PID1はSysV init
ではなくなりました。 Ubuntuでは、かなり前からありませんでした。