30日でできるOS自作入門
http://www.imasy.or.jp/~kawai/
著者:河合秀実
分類:自作入門
評価:★★★★
一応一ヶ月でそれなりのOSが作れるように本の構成がなっていますが、まったくプログラミングをやっていない人にとっては一ヶ月で作るのは無理でしょう。しかしプログラミングを少しでもやったことのある人ならばOSの仕組みなどがよくわかるし、よりハードに近い部分でのやり取りをすることができとても楽しめるでしょう
ちなみに、自分がこの本に興味を持った理由は表紙の猫又がかわいかったからです。
名前はカオちゃんですー。
Cとアセンブラとをつなぐためのツールをはじめ、その他OSを作るために必要なツールも同梱されているCDについています。
////////////////////////////
C言語の導入
Cのコンパイル方法
cc1.exeを使ってbootpack.cからbootpack.gasをつくる
gas2nask.exeを使ってbootpack.gasからbootpack.nasをつくる
nask.exeを使ってbootpack.nasからbootpack.objをつくる
obj2bin.exeを使ってbootpack..objからbootpack.bimをつくる
bim2hrbを使ってbootpack.bimからbootpack.hrb
これで機械語になったのでcopyコマンドからasmhead.binとbootpack.hrbをくっつけてbootpack.sysとする
/////////////////////
ハード的な側面もしっかりフォローされています。
/////////////////////
セグメンテーション
メモリを好きなように切り分けてそれぞれのブロックの最初の番地を0として使える。
セグメントの大きさ
セグメントがどの番地から始まるのか
セグメントの管理属(書込み禁止、実行禁止、システム専用)
これらはメモリに保存されその場所を指すためにセグメントレジスタを使います。
セグメントレジスタは16ビットメモリ中の13ビットのみを使っています。
これはセグメント番号またはセグメント選択肢と呼ばれています。
またこれらが指すメモリ64KBをGDTと呼ぶ
これらの設定にはメモリにまずGDTを書き込んでGDTRという特殊なレジスタに登録すればよい
IDT(割り込み記述子表)
割り込み番号が255用意してあり、割り込みが発生したら何を実行するかを表にしたもの