Linux起動プロセス詳細(bootstrap)
コンピュータの起動プロセスを理解することは、起動時に発生する可能性のある問題を修復するのに役立ちます。
さいしょきだんかいコンピュータの電源を入れると、コンピュータはマザーボードのBIOS(Basic Input/Output System)から格納されているプログラムを自動的に読み取ります。このプログラムは、通常、マザーボードに直接接続されているハードウェア(ハードディスク、ネットワークインタフェース、キーボード、シリアルポート、パラレルポート)を知っています。ほとんどのBIOSでは、フロッピーディスク、CD、またはハードディスクからコンピュータを起動するために1つを選択できます。
次に、コンピュータは、選択したストレージデバイスから開始した512 bytes(ディスクが開くと512 bytes、ディスクから起動すると)を読み出します。この512 bytesは、マスタブートレコードMBR(master boot record)と呼ばれる。MBRは、デバイスのパーティションからブートローダー(boot loader)をロードするようにコンピュータに伝えます。Boot loaderには、オペレーティングシステム名、オペレーティングシステムカーネルの位置など、オペレーティングシステム(OS)に関する情報が格納されています。よく使われるboot loaderにはGRUBとLILOがあります。
その後、boot loaderはkernelをロードするのに役立ちます。kernelは実際にはコンピュータを操作するためのプログラムであり、コンピュータオペレーティングシステムのカーネルであり、主な任務はコンピュータのハードウェアリソースを管理し、ソフトウェアとハードウェアのインタフェースとして機能することである。オペレーティングシステム上の任意の操作はkernelを介してハードウェアに伝達されます。WindowsとLinuxにはそれぞれ独自のkernelがあります。狭義のオペレーティングシステムとはkernelを指し、一般化されたオペレーティングシステムはkernelおよびkernel上の様々な応用を含む。
(Linus TorvaldsはLinuxの父というよりLinux kernelの父です。彼は依然としてLinux kernelの開発とメンテナンスを担当しています。Ubuntu、Red Hatについては、同じkernelに基づいており、異なるアプリケーションとインタフェースからなるより完全なオペレーティングシステムバージョンを網羅しています。)
実際には、複数のパーティションにboot loaderをインストールすることができ、各boot loaderは異なるオペレーティングシステムに対応し、MBRを読み込むときに起動したいboot loaderを選択することができます。これがマルチオペレーティングシステムの原理です。
まとめ:BIOS->MBR->boot loader->kernel
kernelLinux kernelをロードすると、Linux kernelが動作します。kernelは、まず自分が実行するために必要なメモリ領域を予約し、ドライバによってコンピュータのハードウェアを検出します。これにより、オペレーティングシステムは、自分が使用できるハードウェアを知ることができます。その後、kernelはinitプロセスを開始します。これはLinuxシステムの1番のプロセスです(Linuxシステムには0番のプロセスはありません)。これでkernelはコンピュータの起動段階での作業を完了し,initに引き継いで管理する.
まとめ:kernel->init process
init process(boot loaderのオプションに従って、Linuxはシングルユーザーモード(single user mode)に入ることができます。このモードでは、初期スクリプトはまだ実行されていません。コンピュータに存在する可能性のあるエラーを検出して修復できます。
その後、initはLinuxでよく見られるshell scriptsである一連の初期スクリプト(startup scripts)を実行します。これらのスクリプトは、次の機能を実行します。
コンピュータ名、タイムゾーン、検出ファイルシステム、ハードディスクのマウント、一時ファイルのクリア、ネットワークの設定......
これらの初期スクリプトは、オペレーティングシステムが完全に準備されていますが、まだログインできる人はいません!!!Initでは、ログイン(login)ダイアログボックス、またはグラフィカルなログインインタフェースが表示されます。
ユーザー名(vameiなど)とパスワードを入力し、DONE!
その後、ユーザー(user)vameiとしてコンピュータを操作します。また、Linuxは、ユーザーを作成するときの設定に応じて、stupidグループやvameiグループなどのグループに分類します。
だからあなたはユーザーvameiであり、vameiグループのメンバーになります。(注意、グループvameiとユーザーvameiは名前が重複しているだけで、Dellと呼ぶことができます。また、Dellのボスと同じです。あなたは完全にユーザーvameiであり、stupidグループのメンバーでもあります)まとめ
BIOS -> MBR -> boot loader -> kernel -> init process -> login