ウォンツテック

そでやまのーと

OS作成

qemuと実機だけの開発環境だと実験が主にqemuの実装に依存してしまうのでbochsLinux版)も入れてみた。bochs用のBIOSやらは/usr/share/bochsにインストールされているので以下のようにbochs用コンフィグを書いた。(windows用のコンフィグをコピー)

romimage: file=/usr/share/bochs/BIOS-bochs-latest, address=0xf0000
megs: 256
vgaromimage: /usr/share/bochs/VGABIOS-elpin-2.40
floppya: 1_44=boot.bin, status=inserted
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=0, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0, ioaddr1=0x1e8, ioaddr2=0x3e0, irq=11
ata3: enabled=0, ioaddr1=0x168, ioaddr2=0x360, irq=9
boot: floppy
ips: 1000000
floppy_bootsig_check: disabled=0
log: log.bochs
panic: action=ask
error: action=report
info: action=report
debug: action=ignore
debugger_log: -
parport1: enabled=1, file="parport.out"
vga_update_interval: 300000
keyboard_serial_delay: 250
keyboard_paste_delay: 100000
floppy_command_delay: 500
mouse: enabled=0
private_colormap: enabled=0
keyboard_mapping: enabled=0, map=
usb1: enabled=1, ioaddr=0xFF80, irq=10

これでこのコンフィグファイルとboot.binがあるディレクトリでbochs -qで起動。

bochsで起動してみてprocess1が表示されてから止まったままなので「あれbochsでの動作おかしいな。。」と思って放置してたら数十秒経ってから次の文字列が表示。さすがbochs。重いよorz

bochs

実機とqemuでは正常に(思った通りに)動くのにbochsだと微妙にだめ(idtの登録辺りからおかしい)
うーんどうしよう。。。

追記

デフォルトだとdebug機能が弱かったので以下のように設定してrecompile

 ./configure --enable-cpu-level=6 --enable-debugger --enable-disasm
 --enable-all-optimizations --enable-apic --enable-x86-debugger