やっとボクノス始動!
苦節1ヶ月・・・ハードクラッシュを乗り越え、とりあえず開発環境は揃った気がします。
そんなわけで、ボクノスようやく始動です!!
boxnos 0.00.01
Makefile
all : as boot.S -o boot.obj ld -Ttext=7c00 -o boot.exe boot.obj objcopy -O binary boot.exe boxnos.img qemu.bat boxnos.img
boot.S
.text .code16 .globl _start _start: haltLoop: hlt jmp haltLoop signature: . = _start + 510 .word 0xaa55
qemu.bat
@echo off set QEMU=C:\bin\qemu\ %QEMU%qemu-system-x86_64.exe -L %QEMU% -fda %1
0.00.01解説
Makefile
Makefileが適当すぎですが、重要なのはリンカ部分
asでboot.Sからboot.objを作る。 ↓ ldでboot.objからboot.exeファイルを作る。 ↓ objcopyでboot.exeから要らない部分を削除。 ↓ boxnos!!
obj→exe→binの手順は面倒ですね。OS自作入門のobj2bimを使えば一発で出来ますが、しばらくldの勉強のためにldを使うことにします。
相当大変そうな感じがしてきたぞぉ・・・
boot.S
CPUが100%で回るのは嫌なので、最初に選んだ命令はhltです。割り込みが入るまでじっとしてます。hltをコメントアウトするとCPUが100%で回ります。