Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxシステムの起動に関する知識

Linuxシステムの起動に関する知識

  

ハードディスクからLinuxを起動するPCには2つのフェーズがあります。

1. BIOSのセルフテストとMBRでのブートストラップの検出[このステップでは、マザーボードのBIOSプログラムが修正されました。補完】

2.コントロールがブートストラップに渡された後、ハードディスクのMBRの長さは512バイトに固定され、MBR自体は2つの部分に分けられます:最初の446バイトはブートストラッププログラムで、残りはパーティションテーブルです。ブートストラッププログラムの目的は、ブートパラメータを見つけ、ディスク上のカーネルイメージを取得し、それをメモリにロードし、そしてブートパラメータを渡し、そして最後にCPUの制御をカーネルに渡すことです。

2つの一般的なブートローダー:LILO、GRUB

起動時に使われる2つのファイル:vmlinuxとinitrd

Vmlinux

ウィキペディアの説明
>

Linuxシステムでは、vmlinuxは静的にリンクされた実行可能ファイルで、Linuxでサポートされているオブジェクトファイル形式の1つ(ELF、COFF、a.outなど)で、カーネルのデバッグに必要な場合があります。シンボルテーブルの生成などの操作が可能ですが、マルチブートヘッダー、ブートセクター、セットアップルーチンを追加してオペレーティングシステムのカーネルとして使用する前に起動可能にする必要があります。

Vmlinuxは次の形式のコンパイル済み実行ファイルです。 Linuxは、ELF、COFF、a.outなどをサポートしています。通常はカーネルのデバッグ、シンボルテーブルの生成に使用されます。実行可能ファイルとしてカーネルに入れたい場合は、ブートの関連部分をブート可能ファイルにする必要があります。

Initrd:

他のUnixシステムと同様に、Linuxオペレーティングシステムは最初にカーネルをメモリ内で起動します。カーネルは、オペレーティングシステムおよびアプリケーションのライフサイクル全体を通して存在し、アプリケーション(ソフトウェア)は「ユーザ空間」内で実行され、カーネルの制御下にある。

ロードメモリを最小限に抑えるために、いくつかのコアLinuxプログラムはモジュールに変換され、システムに動的にロードすることができます。

initrdシステム内のファイルは、ブートプロセス中にカーネルからアクセスすることができ、ファイルの内容はループファイルとしてマウントされます昔はinitrdは小さなフロッピーディスクに置かれていました。 initrdは通常gzipタイプに圧縮されており、ブート時にブートローダ(LILO、GRUB)から通知されます。

Vmlinuxとimageの違い

Vmlinuxはelf形式のファイルです。objcopy操作を行った後のimageはvmlinuxです。データセグメントとテキストセグメントのコンテンツファイルのみが保持されます。通常はimageです。 zimageなどの圧縮後に格納します。Uimageは、zimageと、ubootによって提供され、ubootで使用される0x40の先頭を基にしています。


Copyright © Windowsの知識 All Rights Reserved