keigo1216 / ketchup

raspberrypi 3A+用のOS
1 stars 0 forks source link

implement create process system call #65

Closed keigo1216 closed 2 weeks ago

keigo1216 commented 2 weeks ago

実装すること

プロセスを生成するシステムコールを実装する

  1. 物理アドレスを仮想アドレスにマップするシステムコールを作成
  2. process_create関数の引数をイメージへのアドレスとサイズから、~エントリポイントの仮想アドレスをもらうように修正~ ユーザープログラムのエントリポイントを引数で渡す。仮想アドレスのマッピングは別途vm_mapシステムコールで行う(これは別のissusで対応)
  3. プロセスを作成するシステムコールを作る

マイクロカーネルというよりかはモノリシスカーネルになっているけど、動かすことを最優先で実装する(後でマイクロカーネルっぽくユーザー空間に置くでもよし)

メモ

create_task時にはユーザーの仮想アドレスは割り当てずに、プロセス生成後にマップしていた=>ここを分ける理由は? create_taskにプログラムの開始アドレスを渡せるようにしたい