Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linux起動プロセスの詳細

Linux起動プロセスの詳細

  

起動プロセス1. BIOSハードウェア情報の読み込み2. MBRカーネルローダー(lilo、grub、spfdiskなどとも呼ばれる)起動情報の読み込み; 3.カーネル操作の読み込みSystem
コア情報; 4.カーネルはinitプログラムを実行して実行レベルの情報を取得します; 5. initは/etc/rc.d/rc.sysinitファイルを実行します; 6.コアプラグインモジュール(/etc /modules)を起動します。 Conf); 7. initは実行レベルのバッチを実行します(スクリプト); 8. initは/etc/rc.d/rc.localファイルを実行します; 9. /bin /loginプログラムを実行します; 10.ログイン後に起動しますシェルはホストを制御します。

以下は、説明する重要な部分です。

カーネルをロードする前に、BIOSの起動、mbrブートなどが行われますが、この記事の範囲内ではありません。やはり。システムの起動時には、メモリにオペレーティングシステムが存在しないため、最初にカーネルをロードする必要があります。ロードプロセスは複雑であり、これは誇張されていません。

initカーネルがロードされた後、最初に実行されたプログラムはinitなので、そのプロセスpidは常に1です。 /etc /inittabはinitプログラムの設定ファイルです。ここから起動レベルなどの情報を読みます。

/etc/rc.d/rc.sysinit Init設定をロードしたら、まずrc.sysinitファイルを実行します。その一般的な仕事はデータから見られるように、以下の通りですが、詳細には研究されていません。 1.デフォルトパスを設定します。(PATH)2.ネットワークステータスを設定します。システムは/etc /sysconfig /networkとファイル内のデータ(NETWORKING、FORWARD_IPV4、HOSTNAME、DOMAINNAME、GATEWARYなど)を読み取ります。 GATEWAYDEVなどの設定がシステムに読み込まれます。 3.システムの交換スペースを有効にします(単純なものは仮想メモリと考えることができます)。4.ファイルシステムをチェックします。この時点で、システムは/fsckoptions、/forcfsck、/fastbootなどのディレクトリをチェックします。ディレクトリ、あなたのシステムが異常なシャットダウン(突然の停電など)をした時、Linuxは自動的にルートファイルシステムをチェックするように強制します。それを考えると、それは Windows
システムの下にあるように見えます、あなたが正しくシャットダウンしないとき、あなたがブートプロセスの間にハードディスクをスキャンするとき、同じ状況が起こります! 5.周辺機器設定とシステム設定パラメータ(/proc):LinuxまたはUnixシステムでは、ルートディレクトリに非常に奇妙なセクタがあります。それは/procです。実際、このディレクトリはメモリに記録されており、起動するたびに構築されます。彼の主な機能は、ホストのいくつかのインタフェースデバイスの最新のステータスを記録することです。たとえば、ネットワークが周囲にあり、入力と出力が周囲にあるなどです。あなたが何も持っていないならば、それをハックしないでください!問題があるでしょう6.プラグアンドプレイ(PNP)のいくつかのパラメータを設定します; 7. /etc /mtabをクリアします; 8. rootと/procファイルシステムをマウントします:もちろん、いくつかのデータを設定した後情報を書き留めておく必要があります。この時点で、ルートと/procの情報はファイルシステム上で彼に与えられます! 9.モジュールを使用するかどうかを決定し、モジュールをロードします。10.ファイルシステムをチェックします。前と同じように、current /fastbootチェックフラグがオンになり、他のセクタはfsckでチェックされます。 (fsckを使用してください)11.他のファイルシステムをハングアップします。12.コンソールフォントを設定します。13.クォータを開きます。14. lock、pidなどの不要なファイルを消去します。起動レベルに応じて、rc.sysinitの実行後、Dmesgは/etc/rc.d/rcX.d/の/var /log /dmesgに配置されます。スクリプトは対応するrcX.dディレクトリで実行されます。たとえば、レベルが3の場合は、/etc /rc.d /rc3.d /ディレクトリでスクリプトを実行します。 rcX.dディレクトリには、実際のスクリプトはありません!代わりに、/etc /rc.d /init.dディレクトリに実際のスクリプトの文字リンクを入れてください。なぜあなたはこれをしたいのですか?これはプログラム、共通モジュールを書くのと同じです。たとえば、rc3.d、rc5.dは同じスクリプトを多数起動します。それで/etc/rc.d/init.dディレクトリに置くだけで、リンクは大丈夫です。したがって、init.dディレクトリにすべてのスクリプトを配置する必要があります。さまざまなレベルで、呼び出すことを選択できます。注:/etc/init.dは/etc/rc.d/init.dと同じです。知らない人につながる人は誰でも。

chkconfig --listコマンドを使用すると、各ランレベルサービスの起動と停止を確認できます。

/etc/rc.d/rc.localこれは、rcX.dが実行されるパーソナライゼーションモジュールです。その後、スクリプトは一律に実行されます(一部のレベルでは実行されないようです)。そのため、システムが自動的に実行する操作をユーザーが望むことがより適切です。たとえば、一部のデバイスはシステムの起動時に自動的にマウントされます。ここに置くのが適切なのはなぜですか?カーネルをロードする前にいくつかの実行操作を書いた場合、それは間違いなく動作しません。いくつかのサービスが開始された後にいくつかの操作が必要になるためです。 rc.sysinit rcX.dの実行後、ほとんどのシステムサービスが開始されているので、rc.localでいくつかのユーザー操作を実行することがより適切です。

Copyright © Windowsの知識 All Rights Reserved