86系のPCをブートさせて遊んでみよう、というお話の2回目です。テキストは『OSを書く:初歩から一歩ずつ』です。
環境はAMD64+Windows10+VMware Workstation 17 Player+Debian 12.4です。
今回はMakefileを作るのと、余裕があれば文字を表示するところまでかな。届くかな?
ビルドプロセスを短縮する
Makefileを作ってビルド…というかアセンブルから実行までを簡単にしましょう、というお話。
『今時make?』という気もしなくはないんですが、アセンブラでboot周りのことをやるのなら『やっぱmakeよね!』とも思います。
やっていることというか、やりたいことは凄く単純で
$ nasm -f bin boot.asm -o boot.bin
$ qemu-system-x86_64 boot.bin
と、2回コマンドを打っていたのを
$ make qemu
で済まそうということ。
いちいちだらだらタイプしたくないし、ヒストリから拾うのも面倒だし、という怠け者の発想ですね。怠けるためにメンドクサイ仕込みをするとか、世の中よくあることです。
makeの使い方とかMakefileの書式とかを知りたい方は、ネットで調べてもらえば沢山記事があると思いますので、そちらに任せます。
テキスト通りMakefileというファイルを作成します。
boot.bin: boot.asm
nasm -f bin boot.asm -o boot.bin
qemu: boot.bin
qemu-system-x86_64 boot.bin
clean:
rm *.bin
実行してみます。
ん?
なにこれ?
Makefile:2: *** 分離記号を欠いています. 中止.
って、どういうこと?
ちょっと調べてみたら、Makefileではコマンドの前にタブがないといけないみたいです。
何て言うか…『年寄りはこれだから困る』とか言いたくなってみたり?
気を取り直してMakefileを修正します。
boot.bin: boot.asm
nasm -f bin boot.asm -o boot.bin
qemu: boot.bin
qemu-system-x86_64 boot.bin
clean:
rm *.bin
2行目、5行目、8行目の先頭にタブを入れます。
で、改めて実行します。
ちゃんと動きました。めでたしめでたし。
ここで気力が尽きました。文字列の表示は次回だなぁ…。
《2024/4/19 11:14:24》