やっとボクノス始動!

苦節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を使うことにします。

obj2bimについてのページ

相当大変そうな感じがしてきたぞぉ・・・

boot.S

CPUが100%で回るのは嫌なので、最初に選んだ命令はhltです。割り込みが入るまでじっとしてます。hltをコメントアウトするとCPUが100%で回ります。

qemu.bat

QEMU on Windows版を使用してます。BIOSの場所はフルパスで指定orQEMUフォルダにコピーしないといけないので、ちょっと面倒です。えぇ方法ないかなぁ・・・。

キャプチャを載せたいところですが、グラフィックソフト入れてない(汗