web-dev-qa-db-ja.com

起動可能なメディアを起動可能にする理由は何ですか?

好奇心から、メディアを起動可能にする理由は何ですか?説明へのリンクをいただければ幸いです。

10
fakedrake

おそらく、起動可能なメディアがどのように編成されているかについてのいくつかの詳細は、「起動可能なメディアを起動可能にするもの」を定義するのに役立つ可能性があります。

起動手順はアーキテクチャによって異なるため、標準のPC(x86アーキテクチャ)を使用します。

まず、効果的に「起動」するには、後の電源投入時自己診断(POST)後にBIOSによってメディアを選択する必要があります。これを行うには、メディアが起動可能としてマークされているである必要があります。これは、最初のセクターに起動署名が必要であることを意味します。これは、ミディアムを起動可能にする最初のことです。

次に、BIOSがロードされ、このブートセクターに渡されます(そこに格納されているものはすべて...したがって、直接適切なリアルモードプログラムになる可能性がありますが、「通常の」スキームに固執しましょう)。したがって、起動可能であるためには、メディアはそのような機能を持っている必要がありますブートセクタ

メディアがパーティション分割されている場合、マスターブートレコード(MBR)がこのセクターにインストールされます。このコードは、パーティションテーブルをチェックし、ブート可能フラグが設定されているのパーティションを見つける役割を果たします。次に、MBRは、このパーティションの最初のセクターをロードします。このセクターには、ボリュームブートレコード(VBR)と呼ばれるものが含まれています。パーティション化されていないメディアの場合、VBRはメディアの最初のセクターに配置されているため、BIOSによって直接呼び出されることに注意してください。

VBRにはブートストラッププログラムが含まれています。このプログラムは、マシンを初期化して(つまり、A20ゲートを介した拡張メモリのアクティブ化、リアルモードからプロテクトモードへの切り替えなど)、「モダン」コードを実行するのに適した環境を設定し、このコードをメモリにロードしてから「ジャンプ」する必要があります。 「それに。上記のコードは、ブートローダープログラムの場合はOSカーネル、チェーンロードの場合はマルチブートシステム(GRUB、LILOなど)のいずれかです。とにかく、結局、メディアを起動するには、実行する実行可能コードが必要です。

以下の内容(カーネルの解凍、最初のramdiskのマウント、ハイブリッドカーネルの場合のモジュールのロード、またはマイクロカーネルで起動するサーバーなど)は、起動可能なメディア編成の観点からは厳密には関係ありません。

注:私が説明したのは、ハードディスクとフロッピーのプロセスです。ただし、CDの場合は非常に似ています。さらに、CDを起動可能にするには、ISO9660標準の拡張であるEl-Torito仕様に準拠している必要があります。もともと、CDには起動可能なフロッピーディスクイメージ(つまり、実際には1.44Mのイメージ)が含まれている必要がありました。これはBIOSによってフロッピーとして扱われ、それに応じて起動されました。最近のハードウェアでは、この回避策なしで直接起動できます。

5

ブータブルミディアムブータブルにするのは

  • 次のようなものを定義する起動可能なメディアの標準:
    • ブートローダーが適用可能なハードウェアプラットフォーム。
    • ブートローダーソフトウェアのメディア上の場所。
    • そのソフトウェアがロードされるプロセス。
  • メディアを接続可能なハードウェアでのこれらの標準の実装。

ウィキペディアには、起動プロセスを説明する 記事 があります。

9
RedGrittyBrick