ブートローダーとbootstrapローダーの違い。私によるとbootstrapローダーはROMに格納され、ブートローダーはMBRのハードディスク(間違っている場合は訂正してください)bootstrapローダーは起動後に実行される最初のプログラムです。現在、これらの文の意味がわかりません:-電源を入れた後、ブートローダーはボードを制御しており、Linuxカーネルにまったく依存していません。そしてbootstrapローダーはブートローダー間の接着剤として機能しますとlinuxカーネル。これらはどういう意味ですか?そしてなぜ両方が必要なのですか?
Bootstrap Loader
Bootloader
ここISステップ
0 : Power On!
1 : CPU Power On! CPU try to find something in ROM(Or ERROM)
2 : Find BIOS (or other firmware). Run BIOS
3 : BIOS(bootstrap loader and other functions) run
4 : BIOS try to find something in MBR
5 : Find MBR(512 bytes) there is some useful information of the partition
6 : Copy the MBR content into physical disk 0x7c00 where is the location of the Grub.
7 : Grub(a type of bootloader) use the information of the MBR finds a linux! Prepare to run.
8 : Run your linux!
多くのアーキテクチャでは、bootstrapローダーまたは第2ステージローダーを使用して、Linuxカーネルイメージをメモリにロードします。一部のbootstrapローダーは、カーネルイメージのチェックサム検証を実行します。ほとんどの場合、カーネルイメージの解凍と再配置を実行します。
このコンテキストでのブートローダーとbootstrapローダー)の違いは単純です。ブートローダーは電源投入時にボードを制御し、Linuxカーネルにまったく依存しません。対照的に、= bootstrapローダーの人生の主な目的は、ボードレベルのブートローダーとLinuxカーネルの間の接着剤として機能することです。適切なものを提供するのはbootstrapローダーの責任です。カーネルを実行するためのコンテキスト、およびカーネルバイナリイメージを解凍して再配置するために必要な手順を実行します。
ブートストラップ、ブートローダー、またはブートプログラムとも呼ばれる、bootstrapローダーは、コンピューターのEPROM、ROM、またはその他の不揮発性メモリに常駐するプログラムであり、次の場合にプロセッサによって自動的に実行されます。コンピューターの電源を入れます。bootstrapローダーはハードドライブのブートセクターを読み取り、コンピューターのオペレーティングシステムをロードするプロセスを続行します。ブーストラップという用語は、「ブートストラップで自分を引き上げる」という古いフレーズに由来します。 「ExtensibleFirmwareInterface(EFI)を備えたコンピューターでは、ブートローダーが置き換えられました。ブートローダーはEFIBIOSの一部になりました。
U-BootやRedBootなどのブートローダーは、電源を入れた直後にハードウェアを制御します。一方、Boostrapローダーはカーネルイメージにアタッチされており、カーネルを実行するための適切なコンテキストを準備します。たとえば、ARMアーキテクチャ用にカーネルをコンパイルする場合、カーネルファイルはpiggy.o
ファイルとしてコンパイルされ、ブーストラップローダーファイルはmisc.o
、big_endian.o
、およびhead.o
です。