ユーザランドの実装方法
ファイルシステムもelfパーサも仮想メモリも無いカーネルでユーザランドをお手軽に書いてみる方法について考えている。
- ユーザランド側で必要な初期化とシステムコールを一度発行するだけのプログラムをアセンブリで書き、HEXでダンプ
- カーネルのグローバル変数として、HEXダンプしたコードをゴリゴリ書く (UNIXv6でも似たような事をやってる)
- PCBのレジスタを適切に(適当に)設定し、プログラムの開始位置として上述のグローバル変数を指定
- プロセスをランキューに放り込む
プロセスが終了した時に回収を行うような仕組みも必要か。
それは一体どうなってるんだったか・・・
もうちょっとユーザランドの実装を勉強してみる必要が有りそう。