@hktechno
筑波大学院
UNIX V6の現代版x86再実装
MIT製、教育用OSといっている、教科書付き
PDP-11が古すぎるので、再実装している。
構造が非常にシンプル
マルチコアにも対応
ツールチェインはgcc
卒研でやったこと
- SSDAllocのようなもの
- 他のアーキテクチャへの移植も簡単
xv6のパッチを書く
- LGDT後の動作(常識)
- RaspberryPi向けもある
- mist32向けに移植しよう
移植の前提
- MMUが必要
- ディスクは不要
実機で動かすならマルチブート対応で
謎エラーcpu-local? storage
スタックの構築
- exec()などでスタックを構築してエントリポイントへ渡す
- 引数はスタックに構築
ダメなところ
- メモリマップ NULL Pointerを読んでも落ちない!!!
メモリわりあて
- スタックの壱がなんか変な感じ
ファイルシステム
移植してみたけど
- シェルしか動かないし楽しくないからmrubyを移植したい
- 用意するもの Newlib
newlib/libc/sysの下にxv6を移植
同頑張っても400kbぐらいになる(ファイルシステムの制限に引っかかる)
- kernelに直接リンクしてまおう
$ ld -b binary hoge
みたいなことをやったらうまくいった
まとめ
研究にxv6を使うのはやめよう
- 評価が大変
- 実用性皆無