ウォンツテック

そでやまのーと

OS作成

1プロセスのkernel to kernelスイッチはほぼ正常に動作中。複数プロセスの方もなんとなく原因はつかめた。各プロセスにkernel内部用のstackを持たせてそれらをスケジューリングの初っ端かiretする直前に切り替えないといけない。でもkernel to kernelかuser to kernelでだいぶ処理が異なるので難航しそう。
※最近はstackばかり眺めてるので4バイトの塊単位でなんとなく挙動が読めるようになってきた。。「0xc04c9000,0x00000246,0x08048074かこれはkernel to kernelのstack状態でesp,eflags,eipでその前の状態は、、、」みたいな感じで


ところでubuntuの標準gccには罠があるね。デフォでstack protector付けてるって、自作kernelはまず間違いなく動かないよ。-fno-stack-protector付けてコンパイルしてもなぜかbiosのFDC readでこけるし。ubuntuでsodex開発環境作るにはちょっと調査が必要だなあ。