tarosukeの日記: talosという名の俺OS
日記 by
tarosuke
シンボル名を書き換えて、カーネルヒープの初期化をどうするか決めて記述して...でもページング動かすまでdisplayモジュールを初期化しない事にしたからデバグメッセージの扱いがちょっと面倒になったかも。今まではページングを開始したらVRAMのベースアドレスを変更してたのだが、MIにMDが紛れ込んでてあんまりすっきりしなかったのだ。
それから、タスク切替えにia32の流儀を使うのをやめる事を検討中。最初の理由はタスク数の限界。次にタスク切替えを自前にする事でセグメントを「ハメ殺し」にできる。あの忌々しいセグメントデスクリプタをconstにしてlgdtしたあとは放っておけるのだ。するとセグメント関係をinit.sに閉じ込めておけるようになる。
問題はどのくらい効率が低下するかだが...キャッシュがよく効くから誤差の範囲内かもだ。だがもう一つ問題が...特権準位の切替えはスタックの切替えを伴うのだが、これはタスクでしか設定できないようなのだ。テケトーなタスクデスクリプタをltrすりゃいいのかも知らんがな。
むぅ。
talosという名の俺OS More ログイン