KHBIOS関係のメモ
- (by K, 2007.05.05)
- このページはmemo0022の続きです(memo0022はKHBIOS/0000相当)。
(1) えせブートのために(5月中旬リリース向け)
- ブートスクリプトのありかを示すためのマーク:
- 00 F2 KHB0 この後にポインタ。ポインタはLBAだが、単純なLBAではない。
- まずehヘッダでシフト量を書く。さらにehヘッダで有効数字を書く。有効数字部分については、4桁単位で。ビッグエンディアン。
- とりあえず16バイト単位かな。16バイトは128bit。だからシフト量7。111011。
- それで6バイトくらい書きたいよね。つまり12を指定。1111110000。
- シグネチャ6バイト。6bit+10bit。6バイト。これだな。2^(48+4)=4ぺタバイトまで指定できる。
- これをとりあえずIPL内に16バイトアライン位置から書いておくこと。
- ブートスクリプト部分についてはまた今度考えよう。
- リアルメモリやプロテクトメモリ指定については、起動時には指定できない。起動後に細かく指定してもらうべし。希望どおりにもらえなければブートに失敗したという終了方法もある(この場合次のOSのブートを試みる)。
- 起動するとKHBIOSとやり取りするためのハンドルがもらえる。
- 起動後にそのOSのために予約しておいたほかのメモリブロックが与えられる。最初はブートブロックしかもらえない。ver.0.0では他のメモリブロックはない・・・いやある。リアルモードメモリとか。
- 以下は将来の拡張との兼ね合い
- ガーベージコレクトについてはできなくてもいいと思っていたが、やっぱりできたほうがいい。しかし負担にならない程度の方法でやる。KHBIOSからではなく、各OSから自発的に冷凍保存状態になる(その間、割り込みなどは受け付けられない)。その保存状態をディスクに保存してもいいし、メモリ間移動してもよい。冬眠時間をできるだけ短くするための工夫もあっていいだろう。メモリブロックを分割するとか小さくするなどについても、基本的に各OSが自発的にやることであって、KHBIOSからせまるものではない(まあ割り込みシグナルでユーザの意思を伝えるくらいならやってもいいけど)。
- とりあえず画面モードを切り替えられて、ある程度の描画ができるようになりたい。
こめんと欄