これら3つの質問に関する概念を明確にするのに混乱しています
なぜセカンダリプログラムローダーが必要なのですか?
どのメモリにロードされて再配置されますか?
読み取りリンクを介して理解している限り、.. システム内部メモリがubootを完全に保持できない場合はSPLが必要であるため、SPLと呼ばれる最小限のコードを使用してメモリを初期化する必要があります。 SPLは実際に再配置されますか、それとも自分自身に関連するのはubootだけですか?
例として [〜#〜] omap [〜#〜] platformを使用して説明します(理論や一般的な知識ではなく、実際の背景を提供するためです)。手始めにいくつかの事実を見てみましょう。
したがって、これは第一段階のブートローダーは-Boot SPL;です。および2番目の段階のブートローダーは通常のU-Boot(または-Boot固有)です。明確にするために:SPLはSecondary Program Loaderの略です。つまり、ROMコードは最初のものは他のプログラムをロード(および実行)し、SPLは2番目のものはロード(そして、他のプログラムを実行します。通常、ブートシーケンスは次のようになります。ROM code-> SPL-> u-boot-> kernel。 > MBR-> GRUB->カーネル。
[〜#〜] update [〜#〜]
物事を明確にするために、ここにブートシーケンスのすべての段階を説明する表を示します(使用される用語の不確実性を明確にするため):
+--------+----------------+----------------+----------+
| Boot | Terminology #1 | Terminology #2 | Actual |
| stage | | | program |
| number | | | name |
+--------+----------------+----------------+----------+
| 1 | Primary | - | ROM code |
| | Program | | |
| | Loader | | |
| | | | |
| 2 | Secondary | 1st stage | u-boot |
| | Program | bootloader | SPL |
| | Loader (SPL) | | |
| | | | |
| 3 | - | 2nd stage | u-boot |
| | | bootloader | |
| | | | |
| 4 | - | - | kernel |
| | | | |
+--------+----------------+----------------+----------+
だから私はちょうどbootloaderをU-BootとProgram Loader他のプログラムをロードするプログラムの一般的な用語として。
こちらもご覧ください:
[1] SPL(ウィキペディア)
[4] ブートROM vsブートローダー
セカンダリプログラムローダーの理論的な必要性はありません。ただし、多くの場合、実用的な理由があります。頭の上の2つ。まず、モジュール性と開発の容易さ。
第二に、ハードウェアブートプロセスの制限が厳しすぎる場合があります。ブックローダーは、ブートプロセス全体を保存するのに十分なスペースがない特定の場所にあると予想される場合があります。プライマリローダーは、フルブックプロセス(SPL)を読み込むために必要なことを行います。たとえば、プライマリローダーは、メモリ制限付きでROMに格納できます。