ウォンツテック

そでやまのーと

OS作成 - ページング&プロセス編

 カーネル仮想メモリマップのためのページング部分を実装。以下の2段階の処理によりマッピングしています。

  • 1. セカンドブート後のstartup.S中で仮ページングテーブルを設定し、ページングサイズ4KBのPage Tableを1024x2 8MB分用意し、仮想アドレス0x0と0xC0000000からの8MBを物理アドレス0x0の8MBと関連付ける
  • 2. C言語部分に移行後、GDT,IDT等の設定終了の後に本番用Page Directoryをページサイズ4MBで用意し、仮想アドレス0xC0000000からの64MBを物理アドレス0x0からの64MBと関連付ける

これで今のところ問題なく仮想アドレス上で稼動中。

sodex rev.18


次は仮プロセスの構造体回りの実装とプロセスの初期化を実装予定。合わせてシステムコールもそろそろ必要になりそう。