Monarm

バイナリのロード

前回のエントリでプロセスを起動できるようになりました。 が、その動作確認には、Kernel内部のローダに対して、Kernel内部に定義したテスト関数のエントリを指定しているだけでした。 次のステップとしてはサーバプロセスの起動になりますが、そのためにはK…

Kernel完了

Kernelディレクトリ以下の移植が一通り完了しました。 変更を加えた箇所を清書してないのでソースが汚いですが、区切りがいいのでまとめたいと思います(リビジョン7)。 前回から今回の更新にかけて行った事は以下になります: これまで一部無効にしていた箇…

割り込み処理〜コンテキストスイッチ

かなり簡単な方法ですが、コンテキストスイッチに成功しました。(リビジョン6) 深い部分に手を入れたため、知識不足による大いなる勘違いや、確認方法の間違いなどで根本的におかしいかもしれません…。 今回移植したモジュールは、 KObject Process Schedule…

ページング開始

startKernel関数のページング開始処理(PageManager::setup)まで移植が進みました(リビジョン5)。 新たに移植したモジュールは、 IDManager PageManager Segment Messenger です。 Paging開始処理に重点をおいたために、一部不完全で以下のようになっています…

割り込みコントローラ初期化

割り込みコントローラ初期化(pic_init)とインターバルタイマ設定(10ms)の移植が完了しました(リビジョン4)。 ただし、割り込みハンドラの移植が済んでいないため、タイマとしては機能しません(テストコード上で動作確認)。 メモ セグメント機構はx86固有でAR…

MMUオン

とりあえずですが、MMUを有効にしてみました(リビジョン3)。 変換を行ったのは以下のページ(kernel領域)で、それ以外のページはストレートにマッピングしました。 マッピングサイズ セクション(1MB) 仮想アドレス 物理アドレス 0x30000000(SDRAM) 変換テーブ…