ウォンツテック

そでやまのーと

OS作成

bochsで正常に動作しない原因は判明した。
GDTの設定時の(((type >> 8)&0xf) <<4);のような演算で演算子の優先順位を間違えていたためGDTの中身が微妙におかしくなっていた(今まではたまたま必須なビットが立っていたりしたためそれほどの誤動作はせずに動いていた模様)。これによりbochsでもprocess2とprocess3の切り替えが正常に動作を始めた。
ただしFDCの初期化により割り込みが邪魔をしてたので一時的にFDCの割り込みを解除(この辺は後で微調整)。
しかしTSSタスクスイッチでkernel →process1(kernelを引継)→process2→process3→process1のスイッチが今だ動かない。色々とハードウェア割り込み(error)が発生しているのでそれを捕らる処理を書いて調査中。