Linuxシステムの起動プロセス


Linux が起動すると、たくさんの起動情報が表示されます。

Linux システムの起動プロセスは、みんなが思っているほど複雑ではありません。プロセスは 5 つの段階に分けることができます:

  • カーネルの起動。

  • init を実行します。

  • システムの初期化。

  • ターミナルを作成します。

  • ユーザーがシステムにログインします。


カーネルブート

コンピューターの電源がオンになると、最初のステップは BIOS 電源投入時セルフテストであり、BIOS で設定されたブートデバイス (通常はハードディスク) に従って開始されます。

オペレーティング システムがハードウェアを引き継いだ後、最初に /boot ディレクトリ内のカーネル ファイルを読み取ります。

1030.png

init を実行する

init プロセスは、システム内のすべてのプロセスの祖先と比較できます。このプロセスがなければ、システム内のプロセスは開始されません。

init プログラムは最初に設定ファイル /etc/inittab を読み取る必要があります。

1031.png

実行レベル

多くのプログラムは起動が必要です。これらは、Windows では「サービス」、Linux では「デーモン」と呼ばれます。

init プロセスの主なタスクは、ブート時に開始されるこれらのプログラムを実行することです。

ただし、サーバーとして使用する場合は Apache を起動する必要がありますが、デスクトップとして使用する場合は必要ありません。

Linux では、「ランレベル」と呼ばれる、さまざまな状況に応じて異なるブート プログラムを割り当てることができます。つまり、起動時の「実行レベル」に基づいて、どのプログラムを実行するかが決定されます。

1032.png

Linux システムには 7 つのランレベルがあります:

  • ランレベル 0: システムのシャットダウン状態、システムのデフォルトのランレベルを 0 に設定することはできません。それ以外の場合は、正常に起動できません。

  • ランレベル 1: シングルユーザーの作業ステータス、root 権限、システムメンテナンスに使用され、リモートログインは禁止されています

  • 実行レベル2: マルチユーザーステータス(NFSなし)

  • 実行レベル3: 完全なマルチユーザーステータス(NFSあり)、デスクコマンドにログインした後に制御に入りますラインモード

  • 実行レベル 4: システムは使用されず、予約されています

  • 実行レベル 5: X11 コンソール、ログイン後にグラフィカル GUI モードに入ります

  • 実行レベル 6: システムがシャットダウンして再起動します通常、デフォルト 実行レベルを 6 に設定することはできません。それ以外の場合は、正常に起動しません


システムの初期化

init 設定ファイルに次のような行があります: si::sysinit:/etc/rc.d/ rc.sysinit / etc/rc.d/rc.sysinit を呼び出して実行します。rc.sysinit は主にシステムの初期化作業を完了する重要なスクリプトであり、毎回最初に実行する必要があります。実行レベル。

これが完了する主なタスクは、スワップ パーティションのアクティブ化、ディスクのチェック、ハードウェア モジュールのロード、および最初に実行する必要があるその他のタスクです。

l5:5:wait:/etc/rc.d/rc 5

この行は、パラメータとして 5 を指定して /etc/rc.d/rc を実行することを意味します。 /etc/rc.d/rc は、パラメータとして 5 を受け入れて /etc/rc.d/rc5 を実行するシェル スクリプトです。 d/ ディレクトリ内のすべての rc 起動スクリプトと /etc/rc.d/rc5.d/ ディレクトリ内のこれらの起動スクリプトは、実際には接続ファイルであり、実際の rc 起動スクリプトではありません。 /etc/rc.d/init.d/ ディレクトリ。

これらの rc 起動スクリプトは、通常、開始、停止、再起動、ステータス、その他のパラメーターを受け入れます。

/etc/rc.d/rc5.d/ の rc 起動スクリプトは通常、K または S で始まる接続ファイルです。S で始まる起動スクリプトの場合、start パラメーターを使用して実行されます。

対応するスクリプトと K で始まる接続があり、それがすでに実行状態にある場合 (/var/lock/subsys/ 下のファイルを目印として使用)、最初に stop を使用します。これらのすでに開始されているデーモンを停止し、再度実行するためのパラメータ。

これは、init が実行レベルを変更したときに、関連するすべてのデーモンが確実に再起動されるようにするために行われます。

各実行レベルでどのデーモンが実行されるかについては、ユーザーが chkconfig またはセットアップの「システム サービス」を通じて自分で設定できます。

1033.png

ターミナルを作成します

rc実行後はinitに戻ります。この時点で、基本的なシステム環境がセットアップされ、さまざまなデーモン プロセスが起動されます。

init は、ユーザーがシステムにログインできるように 6 つの端末を開きます。 inittab の次の 6 行は 6 つのターミナルを定義します:

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

上記からわかるように、mingetty プログラムは実行レベル 2、3、4、および 5 の respawn モードで実行されます。 mingetty プログラムはターミナルを開くことができます。セットモデル。

同時に、テキストログインインターフェイスが表示されます。このインターフェイスは、私たちがよく見るログインインターフェイスであり、ユーザーはユーザー名を入力するように求められ、ユーザーが入力したユーザーは次のようになります。ユーザーの身元を確認するためにログイン プログラムにパラメーターとして渡されます。


ユーザーログインシステム

一般に、ユーザーがログインするには次の 3 つの方法があります:

  • (1) コマンドラインログイン

  • (2) SSH ログイン

  • (3) グラフィカルインターフェースログイン

1034.png

実行レベル 5 のグラフィカル ユーザーの場合、ログインはグラフィカル ログイン インターフェイスを介して行われます。ログインに成功すると、KDE ​​や Gnome などのウィンドウ マネージャーに直接入ることができます。

この記事では主にテキスト ログインについて説明します。mingetty ログイン インターフェイスが表示されたら、ユーザー名とパスワードを入力してシス​​テムにログインできます。

Linux のアカウント認証プログラムは、ログイン時に mingetty から送信されたユーザー名をユーザー名パラメーターとして受け取ります。

その後、ログインはユーザー名を分析します。ユーザー名が root ではなく、/etc/nologin ファイルが存在する場合、ログインは nologin ファイルの内容を出力して終了します。

これは通常、システムのメンテナンス中に root 以外のユーザーがログインできないようにするために使用されます。 /etc/securetty に登録されている端末のみが root ユーザーとしてログインできます。このファイルが存在しない場合、root はどの端末でもログインできます。

/etc/usertty ファイルは、ユーザーに追加のアクセス制限を課すために使用されます。このファイルが存在しない場合、他の制限はありません。


グラフィックモードとテキストモードを切り替える方法

Linuxのデフォルトでは、ログイン用に6つのコマンドウィンドウターミナルが提供されています。

デフォルトでは、最初のウィンドウ (tty1) にログインします。 6 つのウィンドウは tty1、tty2...tty6 で、Ctrl + Alt + F1 ~ F6 を押して切り替えることができます。

グラフィカル インターフェイスをインストールしている場合は、デフォルトでグラフィカル インターフェイスに入り、Ctrl + Alt + F1 ~ F6 を押してコマンド ウィンドウ インターフェイスのいずれかに入ることができます。

コマンド ウィンドウ インターフェイスに入ってグラフィカル インターフェイスに戻るときは、Ctrl + Alt + F7 を押すだけで戻ります。

vmware 仮想マシンを使用している場合、コマンド ウィンドウを切り替えるショートカット キーは Alt + Space + F1 ~ F6 です。グラフィカル インターフェイスを使用している場合は、Alt + Shift + Ctrl + F1 ~ F6 を押して切り替えてください。コマンドウィンドウ。

1037.png

Linux シャットダウン

は主に Linux 分野のサーバーで使用され、シャットダウン操作が発生することはほとんどありません。結局のところ、特別な状況がない限り、サーバー上でサービスを実行することに終わりはありません。最終手段としてサービスがシャットダウンされます。

正しいシャットダウンプロセスは: sysnc > shutdown > reboot > です

シャットダウンコマンドは、ヘルプドキュメントを読むために使用できます。

たとえば、次のコマンドを実行してシャットダウンできます:

sync はメモリからハードドライブにデータを同期します。

shutdown シャットダウン コマンドを使用すると、手動でシャットダウンしてヘルプ ドキュメントを読むことができます。たとえば、次のコマンドを実行してシャットダウンできます:

shutdown –h 10 'このサーバーは 10 分後にシャットダウンします' このコマンドは、コンピュータが 10 分後にシャットダウンし、現在の画面に表示されることを全員に伝えます。ログインしているユーザー。

Shutdown –h now すぐにシャットダウンします

Shutdown –h 20:25 システムは今日 20:25 にシャットダウンします

Shutdown –h +10 10 分後にシャットダウンします

Shutdown –r now システムはすぐに再起動します

Shutdown –r + 10 システムは 10 分後に再起動します

reboot は再起動を意味し、shutdown –r now と同等です

システムのシャットダウンを停止します。これは shutdown –h now および poweroff と同等です

最後に、要約すると、システムを再起動する場合でも、システムをシャットダウンする場合でも、最初に sync コマンドを実行する必要があります。 sync コマンドは、メモリ内のデータをディスクに書き込みます。

シャットダウン コマンドには shutdown –h now halt poweroff と init 0 が含まれ、システムを再起動するコマンドには shutdown –r now reboot init 6 が含まれます。