私は自分自身を(楽しく教育するための)ちょっとしたブートローダを作成しようとしてきました。これまでのところ、私はMSDOSとまったく同じように動作するブートローダ(あるいはブート可能なプログラム)を完成させました。その後、もっと多くのものを実装しようとしたとき、私は512バイトの制限を超えました。私は小さなOSを拡張することに決めました。 2ステージのブートローダのようにsthを書くようになりました。ステージ2はメインカーネルとして動作し、512バイト以上になります。FAT32ステージ2のブートローダを見つける
私はブートローダの最初の段階を書いています。ほぼ。ステージ2があるセクターにジャンプするというアイデアがありましたが、問題は、誰もがコードやチュートリアルを書いているフロッピーイメージの代わりにFAT32 USBを使用していることです。
私の質問は非常に幼稚です:どのように私はFAT32ファイルシステムでstage1.binを使用してstage2.binを読み込むことができますか?
は、これまでのところ、これは私を助けるために失敗しました: Loading second stage of a bootloader
あなたはFAT32メインディレクトリをスキャンしてメモリにファイルをロードすることができます512バイトシングルブロックのボリュームブートレコードを書くためだけの十分な部屋を持って、両方の手順は、あなたが彼らに従うことを要求しますFATのそれぞれの割当チェーン。これはファイルシステムのメタデータの一部であるため、FAT32 BPB用のスペースを確保する必要がありますが、それでも十分なスペースが残っています –
FATエントリを調べて読み込むことによって、どのセクタが存在するのか把握します。 –