3

PCの起動に関しては、いくつかの点であまり明確ではありません。

用語:ブートブロック、ブートセクター、MBR、ブートローダーとブートストラッパー、BIOSとCMOS、およびそれらの機能。

そして、これらはgrubのような現在のブートローダーとどのように関連していますか。

起動順序と起動後の高レベルのソフトウェアについては理解していますが、誰かが電源オンボタンを押したときにこれらのチップの内部で何が起こるのか本当に興味があります。

ウィキペディアは少し謎めいたように見えるので、stackoverflowが私にいくつかの明快な答えを与えるか、少なくとも私が簡単な説明を見つけることができる場所を私に示すことができると思いました。

ヘルプは大歓迎です。

4

1 に答える 1

9

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と呼びます。

これが今のところあなたにとって良いことを願っています。

于 2012-08-17T08:39:03.710 に答える