panicしたらすぐにスレッドが終了するかスタック巻き返ししてから終わるかの違い
スレッドが一つだとそれが終了したらプロセスも終了するので、ぱっと見は変わらない
スタック巻き返しでは積まれている変数をdropしていて、Boxもdropされると持っていた領域の開放が呼ばれるという感じかな
panicしたらすぐにスレッドが終了するかスタック巻き返ししてから終わるかの違い
スレッドが一つだとそれが終了したらプロセスも終了するので、ぱっと見は変わらない
スタック巻き返しでは積まれている変数をdropしていて、Boxもdropされると持っていた領域の開放が呼ばれるという感じかな
読み込むのは静的バイナリなので、ELFヘッダを読んでプログラムヘッダを探して、PT_LOADのセグメントだけ集める方法でいけそう
読み込むのは静的バイナリなので、ELFヘッダを読んでプログラムヘッダを探して、PT_LOADのセグメントだけ集める方法でいけそう
そうやって使うんだ
そうやって使うんだ
これは仮想アドレスが一対一に設定されているわけではなくて、M-Modeで物理メモリ保護を設定しているため
これは仮想アドレスが一対一に設定されているわけではなくて、M-Modeで物理メモリ保護を設定しているため
コンテキストスイッチはyieldで自発的に起こすため、そのときにt0-t6の一時レジスタをsaveするのが理由
なんだけどこれはコンパイラが保存してくれることを前提にしているのでRustだとどうなんだろうと思った
コンテキストスイッチはyieldで自発的に起こすため、そのときにt0-t6の一時レジスタをsaveするのが理由
なんだけどこれはコンパイラが保存してくれることを前提にしているのでRustだとどうなんだろうと思った
今までのステップで一番難しかったかもしれん
今までのステップで一番難しかったかもしれん
lazy_staticとかonce_cellがあるのか
でもこれはコンパイル時に値がわからないものを静的変数として宣言するためで値を保護するものではないと
lazy_staticとかonce_cellがあるのか
でもこれはコンパイル時に値がわからないものを静的変数として宣言するためで値を保護するものではないと