3

オペレーティングシステムを開発しようとしています。OSDevのBarebones チュートリアルを完了しましたが、マルチブートに関する問題がまだ残っています。

私が理解しているように、チュートリアルに従ってマルチブート イメージを作成すると、ELF 形式のバイナリ ファイルが作成されます。オプションを指定すると、この ELF 実行可能ファイルが QEMU によってメモリにロードされ-kernelます。したがって、メモリ内に単一の実行可能プログラムがあり、エントリ ポイントがあります。いくつかの関数とライブラリが並んでいます。記憶には他に何もありません。また、セクタを読み書きできるフロッピーまたはディスク イメージもありません。これは主に、その点に関して QEMU に何も指定していないためです。

しかし、私が達成したいのは、QEMU が ELF 実行可能ファイルをロードした後、セクターを読み書きできるディスクまたはフロッピー アーキテクチャが必要なことです。また、そこからいくつかのユーザープログラムをロードしたり、ファイルシステムをセットアップしたりしたいと考えています。これまでのところ、私が考えているのは次のとおりです。

qemu-system-i386 -kernel myKernel.bin -fda myDisk.image

または、myKernel.binファイルを取得し、512 バイトに揃えられるまでゼロで埋めてから、残りのディスク イメージを追加する必要があります。

私の質問は、QEMU でこの機能を実現するにはどうすればよいかということです。ディスク ドライバの作成に取り掛かる前に、このような作業が可能かどうかを知る必要があります。無理なら別のアプローチも考えられますが、今の考えは以上です。私はすでに調べましたが-initrd、それは私が望むものではありません。また、QEMU によって RAM にファイルをロードしたくありません。代わりに、ディスク イメージを自分で操作したいと考えています。それを行う方法に関する提案はありますか?

4

1 に答える 1