Ok。
最初に理解する必要があるのは、CPUがどのように機能するかです。CPUが実行する次の命令を含むアドレスを指す命令ポインタ(IP)レジスタと呼ばれるものがあります。新しいプログラムを起動するたびに、そのプログラムがメモリにロードされ、CPUのIPがプログラムの開始アドレスに設定されます。しかし、CPUがオフになっているときはどうしますか。CPUに「ブート」プログラムを実行させるにはどうすればよいですか。
このために、「ブートベクトル」と呼ばれるものがあります。これは、CPUの電源がオンになるとすぐにジャンプするアドレスです。
しかし、その後、誰がブートベクトルでプログラムをロードします。当然、プログラムをRAMにプリロードすることはできません。RAMには電力(揮発性)が必要なためです。そのため、EEPROMであり、したがって不揮発性である「ブートフラッシュ」と呼ばれるものがあります。このフラッシュには「BIOS」と呼ばれるプログラムが含まれており、その責任はシステムを死から目覚めさせることです。アイデアは、最小限の必要な機能を備えている必要があるということです。このブートフラッシュは、このプログラムの開始命令がCPUの「ブートベクトル」に正確に一致するようにシステム上で書き込まれ、修正されます。
ここで、BIOSに実行する必要がある次のタスクは、オペレーティングシステムをロードすることです。ただし、ハードディスクに複数のOSがインストールされている場合があります。したがって、最初に、オペレーティングシステムをさらにロードできるプログラムをロードする必要があります。このプログラムはブートローダーと呼ばれます(grubはその一例です)
では、どうやってそれを行うのですか。各ディスクには「ブートセクタ」と呼ばれるものがあります。これは通常、ディスクの最初のセクターです。通常、512MB程度のサイズです。小さなプログラムを保存するのに十分です。さらに起動するために使用するディスク(プライマリ、セカンダリ、CD、USB、ネットワーク)をBIOSに指示します。最も一般的かつデフォルトでは、プライマリハードディスクを使用します。したがって、ブートローダーはそのプログラムに移動してフェッチし、それにジャンプします。ブートローダーは、その時点からOSを起動する方法を知っています。たとえば、grubでは、カーネル名などを指定します。
マスターブートレコードは別の用語であり、Windowsの世界用語に近いものです。Windowのブートローダーは、ブートセクターにインストールされているOSの性質に関するある種の「記録」を前提としています。そのレコードをMBRと呼びます。
これが今のところあなたにとって良いことを願っています。