mikan os by Rust
tips
no_stdでbuild_stdでallocを指定すると,global allocatorを自分で書かなければいけない
LOADタイプのセグメントだけロードしたら動いた
PCIのread writeの方法
割り込み処理は説明イミフだったのでblog-osを参考にする
TODO
rustのstatic変数を初期値0に設定してもelfのどこに反映されるのかわからない...
~~これのせいでどうやってelfをロードすればいいか曖昧~~
調べたら0値を初期値にするとはp_fileszの中には入らない模様になる模様
0値以外の値を初期値にするとp_fileszの中に入る
.bssのサイズも0値のときはその分増えている
多分素直にmemsz分メモリを確保し,segmentをfilesz分そのままコピーしてロードしたあと,
.bssのところを0値で初期化してロードする
面倒なので.bssは見ずにmemsz - fileszのアドレスを0値で初期化する
&*がなんなのかわからん
テンポよくやるには
elfをメモリにロードする方法
assemblyで定義した関数をrustで呼び出す方法
raw pointerをsyncなりsendで扱う方法
変数をstaticとして扱う方法(よくわかってない?)
ライセンスに関する知識 公開するとき困る