OS自作入門 / 2008/08/26 (Tue) / 編集 |
とりあえず、Makefileで引っかかったのでメモ
copyコマンドとdelコマンドはUNIXには存在しない
#COPY = copy
#DEL = del
COPY = cp
DEL = rm
Windowsのコピーコマンドはファイルの合併もできるらしいがUNIXのcpではできないので以下
#haribote.sys : asmhead.bin bootpack.hrb Makefile
# copy /B asmhead.bin+bootpack.hrb haribote.sys
haribote.sys : asmhead.bin bootpack.hrb Makefile
cat asmhead.bin bootpack.hrb > haribote.sys
runも書き換えなきゃならんらしいが、リモートログイン(CUI)したLinux上でqemuを使うつもりはないので試してはいない
#run :
# $(MAKE) img
# $(COPY) haribote.img ..¥z_tools¥qemu¥fdimage0.bin
# $(MAKE) -C ../z_tools/qemu
run :
../z_tools/make.exe img
qemu -m 32 -localtime -std-vga -fda haribote.img
run :
$(MAKE) img
qemu -m 32 -localtime -std-vga -fda haribote.img
パッチの作り方
diff -u だめなMakefile 正常なMakefile > パッチ.patch
patch -b パッチを当てたいMakefile パッチ.patch
copyコマンドとdelコマンドはUNIXには存在しない
#COPY = copy
#DEL = del
COPY = cp
DEL = rm
Windowsのコピーコマンドはファイルの合併もできるらしいがUNIXのcpではできないので以下
#haribote.sys : asmhead.bin bootpack.hrb Makefile
# copy /B asmhead.bin+bootpack.hrb haribote.sys
haribote.sys : asmhead.bin bootpack.hrb Makefile
cat asmhead.bin bootpack.hrb > haribote.sys
runも書き換えなきゃならんらしいが、リモートログイン(CUI)したLinux上でqemuを使うつもりはないので試してはいない
#run :
# $(MAKE) img
# $(COPY) haribote.img ..¥z_tools¥qemu¥fdimage0.bin
# $(MAKE) -C ../z_tools/qemu
run :
../z_tools/make.exe img
qemu -m 32 -localtime -std-vga -fda haribote.img
run :
$(MAKE) img
qemu -m 32 -localtime -std-vga -fda haribote.img
パッチの作り方
diff -u だめなMakefile 正常なMakefile > パッチ.patch
patch -b パッチを当てたいMakefile パッチ.patch
でもって三日目からC言語が登場したわけだがこれがまたややこしいらしい、なんでもC言語で作成したプログラムを使うには以下のような手順を踏まなければならないらしい(*緑字はOS自作入門著者の独自コマンド)
次回はC言語の関数として使えるアセンブラプログラムの書き方とからしい、あとポインタとかも登場して大変な事になりそうな感じ
う〜ん、『よくわかるアセンブラ』でも探しに行こうかなぁ
いやまぁここまで来たらそんな問題でもないか、、、
ちなみに、窓の方はなぜかqemuが動きません orz
- cコンパイラを使ってCファイル(.c)からGASファイル(.gas)を作る なんでもgccはgas形式のアセンブラを前提として作られているのでgas形式のソースコードを出力してしまうらしい(←これはnaskでは読めない)
- gas2naskでGASファイル(.gas)からNASK(.nas)ファイルへ変換
- naskを使ってアセンブルしオブジェクト(.obj)作成
- obj2bimでオブジェクトファイルを連結したバイナリファイル(.bim)を作成 ここまででとりあえずバイナリファイルは完成
- bim2hrbでOS固有の形式(.hrb)へ変換 これでC言語の分の準備はOK
- copy(UNIXならcatなど)でブートローダと連結させて、OS完成(.sys)
- 最後にedimgでイメージ形式(.img)に変換 ここまでくればqemuなどで実行できる
次回はC言語の関数として使えるアセンブラプログラムの書き方とからしい、あとポインタとかも登場して大変な事になりそうな感じ
う〜ん、『よくわかるアセンブラ』でも探しに行こうかなぁ
いやまぁここまで来たらそんな問題でもないか、、、
ちなみに、窓の方はなぜかqemuが動きません orz
PR
トラックバック
URL :
コメント