2

そこで数日前、私は OS 開発という未知の領域に足を踏み入れました。「Hello, World」プログラムの一種として、アセンブリでこのブートローダーを作成しました。

;*********************************************
;   Boot1.asm
;       - A Simple Bootloader
;
;   Operating Systems Development Tutorial
;*********************************************

org     0x7c00              ; We are loaded by BIOS at 0x7C00

bits    16                  ; We are still in 16 bit Real Mode

Start:

    cli                 ; Clear all Interrupts
    hlt                 ; halt the system

times 510 - ($-$$) db 0             

dw 0xAA55

次に、NASM を使用してアセンブリ ファイルを .bin ファイルにコンパイルしました。次に、PowerISO を使用して、このバイナリ ファイルを ISO ファイルに変換しました。最後に、ISO ファイルを Microsoft Virtual PC 2007 に添付しました。最初は機能しなかったので、BIOS をチェックして、CD/DVD がブート優先リストの最初にあることを確認しました。その後、システムを起動しようとすると、次のエラーが表示されました。

"再起動して適切なブートデバイスを選択してください "

インターネットで検索したところ、これは ISO が起動できないことを意味することがわかりました。これを修正する方法についてさらに調査したところ、ブート可能にするために ISO を適切に構成する必要があること以外は、あまり見つかりませんでした。どうすればそれを行うことができますか?それが不可能な場合、他にどのような選択肢がありますか?

Windows 7 Home Premium Edition 64 ビットを実行しています。

4

2 に答える 2

2

プログラムは、ブータブル ISO イメージではなく、マスター ブート レコードを表します。たとえばQEMUを使用してハードディスクとして起動すると、正常に動作します。ただし、すべての仮想マシンがそれほど小さいハードディスク イメージを受け入れるわけではありません。その場合、最初にハードディスク イメージを作成し、次に最初のセクタをプログラムで上書きします。

ブータブル ISO イメージの作成は、もう少し複雑です。詳細については、このウィキをお読みください。

于 2012-11-03T12:30:58.933 に答える
0

Microsoft Virtual PC (ちなみに、Windows のみを起動すると思います) を使用していることは知っていますが、別のものを使用することをお勧めします。以下にいくつかのオプションを示します (すべて無料)。

  • Virtualbox: この無料の仮想化ソフトウェアを使用すると、OS をより簡単に起動できるようになります。
  • QEMU: 私と OS 開発者のお気に入りで、カスタム OS のデバッグと試用を非常に簡単にします。一方、UNIX ベースのシステムでしか利用できないと思うので、Linux VM または Mac を使用するか、Linux をインストールする準備をしてください。
于 2012-11-03T01:33:35.360 に答える