遅まきながら、「30日でできるOS自作入門」を読み始めた。
- 作者: 川合秀実
- 出版社/メーカー: 毎日コミュニケーションズ
- 発売日: 2006/03/01
- メディア: 単行本
- 購入: 36人 クリック: 735回
- この商品を含むブログ (299件) を見る
3日目は意外と内容量が多くて、骨が折れる。 っていうか、独自のツールを使っているケースが多すぎて、何をやっているのか理解できないことが多い。
あまり書籍自体のせいにしたくないのだが、文体が軽すぎて、そっちに集中力がそがれて内容が頭に入ってこない... これだけのボリュームなんだから、もう少し普通の文体で書いてもいいんじゃないでしょうか...
本書では、アセンブラをnask (nasmの独自拡張)とedimg(要するにリンカ?)のようなものを使っているみたいなのだが、
どうも独自ツールだと面倒だし、周辺ツールはオリジナルのものを使ったほうが理解が進みそうなので、 nasm
と、 edimg
の代わりにdd
で実装を行った。
最初のディスク読み込みの部分については動作しているつもりになっていたのだがどうやら写経のミスがあってプログラムが動いていなかったらしい... その影響で、中盤の画面を真っ黒にする動作がうまく行かなくて四苦八苦した。
結局Makefileは以下のようにしている。アセンブリは nasm
, リンク(というかディスクイメージ作成)はdd
を活用している。
run: helloos.img qemu-system-i386 -fda $^ helloos.img: ipl.bin haribote.sys echo haribote.sys > haribote.name dd if=ipl.bin of=helloos.img count=2880 bs=512 conv=notrunc dd if=haribote.name of=helloos.img count=1 bs=512 seek=19 conv=notrunc dd if=haribote.sys of=helloos.img count=1 bs=512 seek=33 conv=notrunc haribote.sys: haribote.nas nasm $^ -o $@ -l haribote.lst ipl.bin: helloos.nas nasm -o $@ $^ clean: rm -rf *.sys *.img *.o *.bin *.lst *.name *~
無事に動作した。C言語モードは、アセンブリの実装もかなり変えられているのでいったんスキップ。 第4章に進んでいこう。
図. 第3章で登場する、画面を真っ黒にするプログラムが動作した様子。