bluedwarfの日記: Let Me Know OS
OSを作ろうと思い、まずはどんなもんかとLet Me Know OSをダウンロードしてmakeしました。
どうも、このlmkosは2週間で作り上げたものだそうで、コードが小さいながら仕様をみているとちゃんと動作しそうだったので使ってみようと思いました。
gcc 3.2では文字列リテラルを複数行で書くとエラーになるので、そこだけ修正してmakeしました。うまくいきました。
しかし、どうやって起動するんだ!?というわけで、マニュアル(PDF)を見ました。このマニュアル、かなり参考になりそうなことが書いてあるのですが、インストール方法っと...6.2(p27)にありました。書いてあるとおりに
tools/fdinst /dev/fd0 ipl setup kernel
と実行したのですが、
fdinst.c:48: invalid call
なーんていうエラーがでてきます。ちゃんとfdinst.cの48行目にfat_mountを実行して0未満が返ってきた場合にはこのようなエラー出力をして1を返してプログラムを終了する、ようなコードがあったのでそれはそれでよいのですが、じゃぁfat_mountでなぜ0未満が返ってくるのか?さっぱり分かりません。
というわけでLMKOSが起動できません( T T) しくしく...
[追記]
上記のエラーは、vfatでフォーマットされたフロッピーディスクを挿入すれば正常に使えることが確認。
tools/fdinst /dev/fd0 boot/ipl boot/setup kernel/lmkos
これは問題なく完了。しかーし、次のコマンド
tools/fatcopy /dev/fd0 demo/demo.com demo/kureha/demo.com
を実行してみると...
../fs/fat.c:548: target has not exists
../fs/fat.c:776: target has not exists
fatcopy.c:54: target has not exists
なーんていうエラーがでてきますが...意味不明。というわけでまたしてもインストール失敗( T T)
[さらに追記]
以下のようにやったらうまくいった。というわけで、これから再起動。
bluedwarf@gentoo boot $ dd if=ipl of=/dev/fd0 conv=notrunc
読み込んだブロック数は 1+0
書き込んだブロック数は 1+0
bluedwarf@gentoo boot $ ../tools/fdinst /dev/fd0 ipl setup ../kernel/lmkos
bluedwarf@gentoo boot $ ../tools/fatcopy /dev/fd0 ../demo/demo.com demo.com
bluedwarf@gentoo boot $
[そのまたさらに追記]
うまくLMKOSが起動しました。素晴らしい。
と、同時にfdinstとfatcopyの使いかたが分かりました。いかに、この日記の始めの方でとんちんかんなことをやっていたか...今思うと顔が赤らむような思いですが、まぁそれもまたよし。と。
デモプログラムがつまらなかったので、このあたりをまずは作ってみようかなと(笑)
Let Me Know OS More ログイン