ブートローダー


Bootloader
ブートローダとしても綴られ、ブートローダー と呼ばれる、またはブートマネージャ及びブートストラップローダは、あるコンピュータ・プログラムを担当してブートコンピュータ。
人気のあるオープンソースブートローダーであるGNUGRUB
Windowsブートローダー
コンピュータの電源がオフになると、そのソフトウェア(オペレーティングシステム、アプリケーションコード、データなど)は不揮発性メモリに保存されたままになります。コンピュータの電源がオンの場合、通常、ランダムアクセスメモリ(RAM)にオペレーティングシステムまたはそのローダーがありません。コンピュータは最初に、読み取り専用メモリ(ROM、後にEEPROM、NORフラッシュ)に格納された比較的小さなプログラムをいくつかの必要なデータとともに実行して、RAMを初期化し(特にx86システムで)、不揮発性デバイス(通常はブロックデバイス、例:NANDフラッシュ)またはオペレーティングシステムのプログラムとデータをRAMにロードできるデバイス。
一部の初期のコンピュータシステムは、人間のオペレータまたは周辺機器からブート信号を受信すると、特定の場所のメモリに非常に少数の固定命令をロードし、少なくとも1つのCPUを初期化してから、CPUに命令を指示します。それらの実行を開始します。これらの命令は通常、一部の周辺機器(オペレータがスイッチで選択できる場合があります)から入力操作を開始します。他のシステムは、ハードウェアコマンドを周辺機器またはI / Oコントローラに直接送信して、非常に単純な入力操作(「システムデバイスのセクター0を1000の位置からメモリに読み込む」など)を実行し、小さな負荷を効果的にロードする場合がメモリへのブートローダー命令の数。次に、I / Oデバイスからの完了信号を使用して、CPUによる命令の実行を開始することができる。
小型のコンピューターは、柔軟性は低くなりますが、より自動化されたブートローダーメカニズムを使用して、コンピューターが所定のソフトウェア構成で迅速に起動するようにします。多くのデスクトップコンピュータでは、例えば、ブートストラッププロセスがCPUで実行されるソフトウェアで始まる(例えば、ROMに含まれているBIOSのIBM PCまたは互換性のあるIBM PCインテル含む(一部のCPU、事前に定義されたアドレスに)のx86シリーズがあります外部の助けなしにリセット後にこのソフトウェアを実行するように設計されています)。このソフトウェアは、ブートに参加する資格のデバイスを検索し、(最も一般的に特別なセクションから小さなプログラムをロードするために基本的な機能が含まれているブートセクタ最も有望なデバイスで、典型的には固定で始まる)エントリーポイントなどの開始としてセクタ。

コンテンツ
1 第一段階のブートローダー
2 第2段階のブートローダー
3 ネットワークブーティング
4 も参照してください
5 ノート
6 参考文献
7 外部リンク

第一段階のブートローダー
ブートローダーは、特にサイズにおいて、特有の制約に直面する可能性がたとえば、以前のIBM PCおよびその互換機では、ブートセクタは通常32 KB (後で64 KB に緩和)のシステムメモリでのみ動作し、元の8088 /でサポートされている命令のみを使用する必要が8086プロセッサ。固定ディスクとリムーバブルドライブにあるPCブートローダーの第1ステージ(FSBL、第1ステージブートローダー)は、デフォルトの64バイトのパーティションテーブルに4つのスペースを残すために、マスターブートレコードの最初の446バイトに収まる必要がBIOSが適切なブートローダーに必要なパーティションエントリと2バイトのブート署名—または4つを超えるパーティションエントリ(それぞれ16バイトで最大16)、ディスク署名(6バイト)などの追加機能の場合はさらに少なくなります、ディスクタイムスタンプ(6バイト)、アドバンストアクティブパーティション(18バイト)、または特別なマルチブートローダーも一部の環境でサポートする必要がでは、フロッピーやスーパーフロッピーボリュームブートレコード、最大で59バイトが占有されている拡張BIOSパラメータブロックにFAT12とFAT16のに対し、DOS 4.0以降のボリュームをFAT32 EBPBは、DOS 7.1で導入されたブートローダーのためにのみ423バイトを残して、でも、87バイトが必要です512バイトのセクターサイズを想定する場合。したがって、Microsoftのブートセクターは従来、ブートプロセスに特定の制限を課していました。たとえば、ブートファイルはファイルシステムのルートディレクトリの固定位置に配置し、連続するセクターとして保存する必要がありました。 条件に注意してコマンドによって、DOSの新しいバージョンでは少し緩和されました。 ブートローダーは、ファイルの最初の3つのセクターをメモリにロードできました。メモリには、ファイルの残りの部分をメモリにロードできる別の組み込みブートローダーが含まれていました。 MicrosoftがLBAとFAT32のサポートを追加したとき、サイズ上の理由から、2つの物理セクターに到達し、386の命令を使用するブートローダーに切り替えました。同時に、他のベンダーは、最小限の使用可能なメモリ(32 KB)とプロセッササポート(8088/8086)のみに対する元の制約を緩和することなく、はるかに多くの機能を単一のブートセクターに詰め込むことができました。たとえば、DR-DOSブートセクターは、FAT12、FAT16、およびFAT32ファイルシステムでブートファイルを見つけ、ファイルがに保存されていない場合でも、CHSまたはLBAを介して全体としてメモリにロードできます。固定された場所と連続したセクター。 SYS
BIOSとUEFIは、不揮発性デバイスからオペレーティングシステムをロードするだけでなく、オペレーティングシステムのシステムハードウェアを初期化します。
第一段目のブートローダーの例としては、BIOS、coreboot、LibrebootとダスU-ブート。

第2段階のブートローダー
GNU GRUB、rEFInd、BOOTMGR、Syslinux、NTLDR、iBootなどの第2ステージのブートローダーは、それ自体がオペレーティングシステムではありませんが、オペレーティングシステムを適切にロードし、実行を転送することができます。その後、オペレーティングシステムはそれ自体を初期化し、追加のデバイスドライバをロードする場合が第2ステージのブートローダーは、それ自体の操作にドライバーを必要としませんが、代わりにBIOSやOpen Firmwareなどのシステムファームウェアによって提供される一般的なストレージアクセス方法を使用できますが、通常はハードウェア機能が制限され、パフォーマンスが低下します。
多くのブートローダー(GNU GRUB、rEFInd、WindowsのBOOTMGR、Syslinux、Windows NT / 2000 / XPのNTLDRなど)は、ユーザーに複数のブートの選択肢を提供するように構成できます。これらの選択肢には、さまざまなオペレーティングシステム(さまざまなパーティションまたはドライブからのデュアルブートまたはマルチブート用)、同じオペレーティングシステムのさまざまなバージョン(新しいバージョンに予期しない問題が発生した場合)、さまざまなオペレーティングシステムのロードオプション(たとえば、レスキューモードまたはセーフモード)、およびメモリテスター(memtest86 +など)、基本シェル(GNU GRUBなど)、さらにはゲーム(PCブートゲームのリストを参照)など、オペレーティングシステムなしで機能できるスタンドアロンプ​​ログラム。一部のブートローダーは他のブートローダーもロードできます。たとえば、GRUBはWindowsを直接ロードする代わりにBOOTMGRをロードします。通常、デフォルトの選択肢は、ユーザーがキーを押して選択肢を変更できる時間遅延を伴って事前に選択されています。この遅延の後、デフォルトの選択が自動的に実行されるため、通常の起動は対話なしで実行できます。
コンピュータがユーザーと対話する準備ができているか、オペレーティングシステムがシステムプログラムまたはアプリケーションプログラムを実行できる場合、起動プロセスは完了したと見なすことができます。
多くの組み込みシステムはすぐに起動する必要がたとえば、デジタルテレビやGPSナビゲーションデバイスが起動するのを1分間待つことは、一般的に受け入れられません。したがって、このようなデバイスはROMまたはフラッシュメモリにソフトウェアシステムを備えているため、デバイスはすぐに機能を開始できます。デバイスの作成時にロードを事前に計算してROMに保存できるため、ロードはほとんどまたはまったく必要ありません。
大規模で複雑なシステムには、最終的にオペレーティングシステムや他のプログラムがロードされて実行できるようになるまで、複数のフェーズで進行するブート手順がある場合がオペレーティングシステムは決して起動または停止しないように設計されているため、ブートローダーはオペレーティングシステムをロードし、それ自体をそのシステム内の単なるプロセスとして構成してから、制御をオペレーティングシステムに取り消せないように転送する場合がその後、ブートローダーは他のプロセスと同じように正常に終了します。

ネットワークブーティング
ネットワークブーティング
ほとんどのコンピュータは、コンピュータネットワークを介して起動することもできます。このシナリオでは、オペレーティングシステムはサーバーのディスクに保存され、その特定の部分はTrivial File Transfer Protocol(TFTP)などの単純なプロトコルを使用してクライアントに転送されます。これらのパーツが転送された後、オペレーティングシステムが起動プロセスの制御を引き継ぎます。
第2段階のブートローダーと同様に、ネットワークブートは、ネットワークインターフェイスのブートROMによって提供される一般的なネットワークアクセス方法を使用して開始されます。これには通常、Preboot Execution Environment(PXE)イメージが含まれます。ドライバは必要ありませんが、オペレーティングシステムのカーネルとドライバが転送されて起動されるまで、システムの機能は制限されます。その結果、ROMベースの起動が完了すると、それ自体がネットワークインターフェイスを使用する機能を持たないオペレーティングシステムでネットワーク起動することが完全に可能になります。

も参照してください
ブートローダーの比較

ノート
^ PC DOS 5.0マニュアルが間違ってsystenファイルはもはや必要が連続していると述べています。ただし、ブートプロセスが機能するには、システムファイルが最初の2つのディレクトリエントリを占有し、 IBMBIO.COMの最初の3つのセクターが連続して格納されている必要がSYSはこれらの要件を引き続き処理します。
^ の例としては、DR-DOS用の拡張機能ながらのMBRとブートセクタそれらと比較してMS-DOS / PC DOSの対応がまだ従来利用して達成することができるコード最適化する技術を7.05の添加のために、LBA、FAT32およびLOADERサポート7.07セクターは、自己修正コード、opcodeレベルのプログラミング、副作用の制御された利用、マルチレベルのデータ/コードの重ね合わせ、およびすべてを単一の物理セクターに圧縮するためのアルゴリズムフォールディング技術に頼らなければなりませんでした。以下のための逆方向とで他のオペレーティングシステムとの相互互換性-マルチブートおよびチェーン負荷シナリオ。
^ DR- DOSVBRがIBMBIO.COMファイル全体をメモリにロードするという規則には1つの例外がIBMBIO.COMファイルが約29KBより大きい場合、ファイル全体をメモリにロードしようとすると、ブートが発生します。スタックを上書きし、ディスクパラメータテーブル(DPT / FDPB)を再配置するローダー。したがって、 DR-DOS 7.07 VBRは、ファイルの最初の29 KBのみをメモリにロードし、IBMBIO.COMの最初の部分に埋め込まれた別のローダーに依存してこの状態をチェックし、ファイルの残りの部分をそれ自体でメモリにロードします。必要であれば。このローダーがない以前のバージョンでは、IBMBIO.COMのサイズがこの制限を超えることはなかったため、これによって互換性の問題が発生することはありません。デュアルエントリ構造と組み合わせると、 PC DOS VBRによってシステムをロードすることもできます。これにより、ファイルの最初の3つのセクターのみがメモリにロードされます。

参考文献
^ 「GNUGRUB-GNUプロジェクト-フリーソフトウェアファウンデーション(FSF)」。www.gnu.org 。2021-09-27を取得。
^ “systemd-boot”。www.freedesktop.org 。2021-09-27を取得。
^ Paul、Matthias R.(1997-10-02)。「CalderaOpenDOS7.01 / 7.02 Update Alpha 3IBMBIO.COM-README.TXTおよびBOOT.TXT-OpenDOSの起動方法の簡単な説明」。
^ 坂本正彦(2010-05-13)。「BIOSがMBRをx86の7C00hにロードするのはなぜですか?」。Glamenv-Septzen.net 。
^ Compaq Computer Corporation; フェニックステクノロジーズ株式会社; インテルコーポレーション(1996-01-11)。「BIOSブート仕様1.01」(PDF)。
^ Zbikowski、マーク; アレン、ポール; バルマー、スティーブ; ボーマン、ルーベン; ボーマン、ロブ; バトラー、ジョン; キャロル、チャック; チェンバレン、マーク; シェル、デビッド; コーリー、マイク; コートニー、マイク; ドライフース、マイク; ダンカン、レイチェル; Eckhardt、Kurt; エヴァンス、エリック; ファーマー、リック; ゲイツ、ビル; ギアリー、マイケル; グリフィン、ボブ; ホガース、ダグ; ジョンソン、ジェームズW。; Kermaani、Kaamel; キング、エイドリアン; コッホ、リード; Landowski、James; ラーソン、クリス; レノン、トーマス; リプキー、ダン; マクドナルド、マーク; マッキニー、ブルース; マーティン、パスカル; マザーズ、エステル; マシューズ、ボブ; メリン、デビッド; マージェンタイム、チャールズ; ネビン、ランディ; ニューウェル、ダン; ニューウェル、タニ; ノリス、デビッド; オレアリー、マイク; オリア、ボブ; オルソン、マイク; オスターマン、ラリー; オストリング、リッジ; パイ、スニル; パターソン、ティム; ペレス、ゲイリー; ピーターズ、クリス; ペッツォルド、チャールズ; ポロック、ジョン; レイノルズ、アーロン; ルービン、ダリル; ライアン、ラルフ; Schulmeisters、カール; シャー、ラジェン; ショー、バリー; 短い、アンソニー; Slivka、ベン; スミル、ジョン; スティルメーカー、ベティ; ストッダード、ジョン; ティルマン、デニス; ホイッテン、グレッグ; ヨント、ナタリー; ゼック、スティーブ(1988)。「テクニカルアドバイザー」。MS-DOS百科事典:バージョン1.0から3.2。ダンカン、レイ; ボストウィック、スティーブ; バーゴイン、キース; Byers、Robert A。; ホーガン、トム; カイル、ジム; レトウィン、ゴードン; ペッツォルド、チャールズ; ラビノウィッツ、チップ; トムリン、ジム; ウィルトン、リチャード; ウォルバートン、ヴァン; ウォン、ウィリアム; ウッドコック、ジョアン(完全に作り直された版)。米国ワシントン州レドモンド:MicrosoftPress。ISBN  1-55615-049-0。LCCN  87から21452。OCLC  16581341。(xix +1570ページ; 26 cm)(注。この版は、別の著者チームによって撤回された1986年の初版を大幅に作り直した後、1988年に発行されました。)
^ Chappell、Geoff(1994年1月)。「第2章:システムのフットプリント」。シュルマンでは、アンドリュー。ペダーセン、アモレット(編)。DOS内部。アンドリューシュルマンプログラミングシリーズ(第1版、第1版)。アディソンウェスリー出版社。ISBN  978-0-201-60835-9。(xxvi + 738 + ivページ、3.5 “-フロッピー )エラッタ: ^ Rosch、Winn L.(1991-02-12)。「DRDOS5.0-より良いオペレーティングシステム?」。PCマガジン。巻 10番 3.p。241-246、257、264、266 。 SYSはDRDOS 5.0で改善されたため、起動可能にするディスク上で最初のクラスターを空けておく必要はありません。DR DOSシステムファイルはディスク上のどこにでも配置できるため、システムを起動するために十分な空き容量のあるディスクを設定できます。(注:ソースはこれをSYSユーティリティに起因しますが、実際にはこれはブートセクターの高度なブートストラップローダーの機能です。SYSはこのセクターをディスクに植えるだけです。)
^ Paul、Matthias R.(2001-01-17)。「DR-DOSのFAT32」。opendos @delorie。 DR-DOSブートセクタはIBMBIO.COM(DRBIOS.SYS)ファイルを検索し、制御を渡す前に*ファイル全体*をメモリにロードします。
^ Paul、Matthias R.(2002-02-20)。「コピーできません」。opendos @delorie。 DR-DOSブートセクタは、IBMBIO.COMファイル全体をメモリにロードしてから実行します。IBMBIO.COMによってロードされるIBMDOS.COMファイルについてはまったく気にしません。 DR-DOSブートセクタは、ルートディレクトリに論理的に保存されている限り、カーネルファイルを検索します。ディスク上のそれらの物理的な場所、およびそれらが断片化されているかどうかは、DR-DOSブートセクターを気にしません。したがって、カーネルファイルをディスクにコピーするだけで(単にCOPYを使用する場合でも)、ブートセクターがDR-DOSセクターになるとすぐに、それらを見つけてロードします。もちろん、これらすべてを1つのセクターのサイズである512バイトにまとめることは困難ですが、これはDR-DOSシステムをセットアップする必要がある場合の大きな利便性の向上であり、DRの鍵でも -DOSマルチOSローダーユーティリティが動作します。MS-DOSあなたが物理的にあなたが他のOSをブートするたびにそれらを周りに交換する必要はありませんので、カーネルのファイルは、特定の場所に存在する必要がありますが、DR-DOSのファイルはどこにでもすることができます。また、それは単に古いものの上にカーネルファイルをコピーすることによって、DR-DOSシステムをアップグレードすることを可能にする、の必要はありませんSYS、MS-DOS /のために必要に応じていない困難なセットアップ手順PC DOS。同じドライブに異なるファイル名で複数のDR-DOSカーネルファイルを保存することもでき、LOADERはBOOT.LSTファイルにリストされているファイル名に従ってそれらを切り替えます。
^ Paul、Matthias R.(2017-08-14)。「OmniBook300の拡張モードでのWindows3.1の継続的な物語」。MoHPC-HP電卓博物館。 DR-DOS FDISKは、ディスクをパーティション分割するだけでなく、新しく作成したボリュームをフォーマットし、ブートセクターを一度に初期化できるため、誤って間違ったボリュームを台無しにするリスクがなく、FORMAT / Sは必要ありません。またはSYS。その後、システムファイルを含む残りのDR-DOSファイルをコピーするだけで済みます。MS-DOS / PC DOSとは対照的に、DR-DOSには「スマート」ブートセクタがあり、ファイルシステムを実際に「マウント」して、ルートディレクトリではなくルートディレクトリにシステムファイルを検索してロードすることを知っておくことが重要です。それらが特定の場所に配置されることを期待しています。物理的には、システムファイルはどこにでも配置でき、断片化することもできます。
^ 「第6章-起動とディスクの問題のトラブルシューティング」。Windows NTServerリソースキット。マイクロソフト。
^ 「色合い」。coreboot 。取得した2010年11月20日を。

外部リンク
ブートローダー-OSDevWiki