Linux起動過程の詳細紹介
Linux起動過程の詳細紹介
起動の第一歩--BIOSのロード
コンピュータの電源を入れると、まずBIOS情報が読み込まれます。BIOS情報はこのように重要です。これは、BIOSにはCPUに関する情報、デバイス起動順序情報、ハードディスク情報、メモリ情報、クロック情報、PnP特性などが含まれているからです。その後、コンピュータの心の中にスペクトルがあります。どのハードウェア設備を読み取るべきか分かります。
第二ステップを起動します。MBRを読み込みます。
ご存知のように、ハードディスク上の第0の磁道の第1セクタはMBRと呼ばれています。つまりマスターBoot Record、つまりマスターブート記録です。サイズは512バイトです。場所は大きくないが、中にはプリスタート情報、パーティションテーブル情報が保存されています。
システムはBIOSで指定されたハードディスクのMBRを見つけたら、0にコピーします。×7 c 00アドレスがある物理メモリにあります。実は物理メモリにコピーされた内容はBoot Loaderです。具体的にはあなたのパソコンに行きます。それはliloかgrubです。
起動第三ステップ--Boot Loader
Boot Loaderはオペレーティングシステムのカーネルが実行される前に実行される小さなプログラムです。この小さなプログラムを通じて、ハードウェアデバイスを初期化し、メモリ空間のマップを作成し、システムのハードウェア環境を適切な状態に連れてきて、最終的にオペレーティングシステムのカーネルを呼び出すために準備します。
Boot Loaderにはいくつかの種類がありますが、Gub、Lilo、spfdiskは一般的なLoaderです。
Gubを例に説明しましょう。やはりliloとspfdiskを使う人は多くないです。
システムはメモリ内のgrub構成情報(一般的にはmenu.lstまたはgrub.lst)を読み出し、この構成情報に従って異なるオペレーティングシステムを起動する。
第四ステップを起動します。カーネルをロードします。
グループによって設定されたカーネルイメージの所在経路によって、システムはメモリイメージを読み取り、解凍操作を行う。この時、画面は一般的に「アンサンブルリンク」のヒントを出力します。解凍カーネルが完了すると、画面から「OK、bootting the kernel」が出力されます。
システムは解凍後のカーネルをメモリに置き、start_を呼び出します。ケネル関数は一連の初期化関数を起動し、各種デバイスを初期化し、Linuxコア環境の確立を完了する。これでLinuxカーネルはもう確立されました。Linuxに基づくプログラムは正常に動作するはずです。
第五ステップを起動します。ユーザ層initはinittabファイルに基づいて運転レベルを設定します。
カーネルがロードされた後、最初に実行されるプログラムは/sbin/initであり、このファイルは/etc/initbファイルを読み込み、このファイルに基づいて初期化作業を行います。
実は/etc/inittabファイルの最も主要な役割はLinuxの運行レベルを設定することであり、その設定形式は「id:5:initdefault:」であり、これはLinuxがレベル5で運行する必要があることを示している。Linuxの運転レベルは以下のように設定されています。
0:シャットダウン
1:シングルユーザーモード
2:ネットワークサポートなしのマルチユーザモード
3:ネットワークサポートのあるマルチユーザモード
4:保留、未使用
5:ネットワークサポートがあり、X-Windowサポートがあるマルチユーザモードがあります。
6:システムを再起動すると再起動します。
etc/inittab文書に関する学問は、実はまだたくさんあります。
スタート第六ステップ-initプロセス実行rc.sysnit
運転レベルを設定した後、Linuxシステムで実行される最初のユーザ層ファイルは/etc/rc.d/rc.sysnitスクリプトプログラムであり、PATHの設定、ネットワークの設定(/etc/syssconfig/network)、swapパーティションの起動、設定/procなどの作業が非常に多い。興味があれば、/etc/rc.dに行ってrc.sysnitファイルを調べてもいいです。中のスクリプトは何日間のものを見られますか?
第7ステップを起動します。カーネルモジュールを起動します。
具体的には/etc/modules.co.nfファイルまたは/etc/modules.dディレクトリのファイルに基づいてカーネルモジュールをロードします。
第8ステップを起動します。実行レベルが異なるスクリプトプログラムを実行します。
ランレベルによっては、システムは、RC 0.dからrc 6.dまでのそれぞれのスクリプトプログラムを実行し、対応する初期化作業を完了し、対応するサービスを開始します。
第九ステップを起動します。実行/etc/rc.d/rc.local
このファイルを開けたら、中に一言があります。読んだら、このコマンドの役割は一目瞭然です。
癜This script will be executed*after*all the other init scripts.
›You can put your own initialization stuff in here iyou don't
皱want to do the full Sys V style init stuff.
rc.localはすべての初期化作業後、Linuxはユーザーに個性化させるところです。あなたが設定したいものと起動したいものをここに置いてもいいです。
10ステップ目を起動します。/bin/loginプログラムを実行して、ログイン状態に入ります。
この時、システムはすでにユーザーがusernameとpasswordを入力するのを待つ時に入りました。あなたはすでに自分のアカウントでシステムにログインすることができます。
==
長いスタートの過程が終わり、すべてが静かになりました。
実はこの裏には、もっと複雑な底の関数が呼び出されています。あなたが研究に行くのを待っています。
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。
起動の第一歩--BIOSのロード
コンピュータの電源を入れると、まずBIOS情報が読み込まれます。BIOS情報はこのように重要です。これは、BIOSにはCPUに関する情報、デバイス起動順序情報、ハードディスク情報、メモリ情報、クロック情報、PnP特性などが含まれているからです。その後、コンピュータの心の中にスペクトルがあります。どのハードウェア設備を読み取るべきか分かります。
第二ステップを起動します。MBRを読み込みます。
ご存知のように、ハードディスク上の第0の磁道の第1セクタはMBRと呼ばれています。つまりマスターBoot Record、つまりマスターブート記録です。サイズは512バイトです。場所は大きくないが、中にはプリスタート情報、パーティションテーブル情報が保存されています。
システムはBIOSで指定されたハードディスクのMBRを見つけたら、0にコピーします。×7 c 00アドレスがある物理メモリにあります。実は物理メモリにコピーされた内容はBoot Loaderです。具体的にはあなたのパソコンに行きます。それはliloかgrubです。
起動第三ステップ--Boot Loader
Boot Loaderはオペレーティングシステムのカーネルが実行される前に実行される小さなプログラムです。この小さなプログラムを通じて、ハードウェアデバイスを初期化し、メモリ空間のマップを作成し、システムのハードウェア環境を適切な状態に連れてきて、最終的にオペレーティングシステムのカーネルを呼び出すために準備します。
Boot Loaderにはいくつかの種類がありますが、Gub、Lilo、spfdiskは一般的なLoaderです。
Gubを例に説明しましょう。やはりliloとspfdiskを使う人は多くないです。
システムはメモリ内のgrub構成情報(一般的にはmenu.lstまたはgrub.lst)を読み出し、この構成情報に従って異なるオペレーティングシステムを起動する。
第四ステップを起動します。カーネルをロードします。
グループによって設定されたカーネルイメージの所在経路によって、システムはメモリイメージを読み取り、解凍操作を行う。この時、画面は一般的に「アンサンブルリンク」のヒントを出力します。解凍カーネルが完了すると、画面から「OK、bootting the kernel」が出力されます。
システムは解凍後のカーネルをメモリに置き、start_を呼び出します。ケネル関数は一連の初期化関数を起動し、各種デバイスを初期化し、Linuxコア環境の確立を完了する。これでLinuxカーネルはもう確立されました。Linuxに基づくプログラムは正常に動作するはずです。
第五ステップを起動します。ユーザ層initはinittabファイルに基づいて運転レベルを設定します。
カーネルがロードされた後、最初に実行されるプログラムは/sbin/initであり、このファイルは/etc/initbファイルを読み込み、このファイルに基づいて初期化作業を行います。
実は/etc/inittabファイルの最も主要な役割はLinuxの運行レベルを設定することであり、その設定形式は「id:5:initdefault:」であり、これはLinuxがレベル5で運行する必要があることを示している。Linuxの運転レベルは以下のように設定されています。
0:シャットダウン
1:シングルユーザーモード
2:ネットワークサポートなしのマルチユーザモード
3:ネットワークサポートのあるマルチユーザモード
4:保留、未使用
5:ネットワークサポートがあり、X-Windowサポートがあるマルチユーザモードがあります。
6:システムを再起動すると再起動します。
etc/inittab文書に関する学問は、実はまだたくさんあります。
スタート第六ステップ-initプロセス実行rc.sysnit
運転レベルを設定した後、Linuxシステムで実行される最初のユーザ層ファイルは/etc/rc.d/rc.sysnitスクリプトプログラムであり、PATHの設定、ネットワークの設定(/etc/syssconfig/network)、swapパーティションの起動、設定/procなどの作業が非常に多い。興味があれば、/etc/rc.dに行ってrc.sysnitファイルを調べてもいいです。中のスクリプトは何日間のものを見られますか?
第7ステップを起動します。カーネルモジュールを起動します。
具体的には/etc/modules.co.nfファイルまたは/etc/modules.dディレクトリのファイルに基づいてカーネルモジュールをロードします。
第8ステップを起動します。実行レベルが異なるスクリプトプログラムを実行します。
ランレベルによっては、システムは、RC 0.dからrc 6.dまでのそれぞれのスクリプトプログラムを実行し、対応する初期化作業を完了し、対応するサービスを開始します。
第九ステップを起動します。実行/etc/rc.d/rc.local
このファイルを開けたら、中に一言があります。読んだら、このコマンドの役割は一目瞭然です。
癜This script will be executed*after*all the other init scripts.
›You can put your own initialization stuff in here iyou don't
皱want to do the full Sys V style init stuff.
rc.localはすべての初期化作業後、Linuxはユーザーに個性化させるところです。あなたが設定したいものと起動したいものをここに置いてもいいです。
10ステップ目を起動します。/bin/loginプログラムを実行して、ログイン状態に入ります。
この時、システムはすでにユーザーがusernameとpasswordを入力するのを待つ時に入りました。あなたはすでに自分のアカウントでシステムにログインすることができます。
==
長いスタートの過程が終わり、すべてが静かになりました。
実はこの裏には、もっと複雑な底の関数が呼び出されています。あなたが研究に行くのを待っています。
読んでくれてありがとうございます。みなさんのご協力をお願いします。ありがとうございます。