やる気がストロングZERO

やる気のストロングスタイル

「ゼロからのOS自作入門」を読んでる 8

ゼロからのOS自作入門を少しずつ読んでいる。

実際にCやC++でコードを書きながら読むのが良いと思われるが、自分は時間の都合で要点要点を読んでいくような読み方をしている。 以下、読んで得た自分の認識をメモしていく。(理解できてない部分あるので間違いはあるかもしれない。)

第八章:メモリ管理を読んで得た知見

OSはメモリの利用できる場所を把握していないといけない。
ブートプログラムで利用していたUEFIメモリマップをOS起動時に受け取って、これを元に利用できる範囲を把握する。
ブートプログラムでは使われていたがOSが起動してその役目を終えてからは利用されなくなったメモリ領域は、OSが新たに空き領域として認識する(させる)
その際に、ブートプログラムでのスタック領域、セグメンテーション領域、ページング領域として利用していた範囲も空き領域として使われてしまうので、OSで使う領域に改めて配置し直さなければならない。
作業としては、それぞれ必要なメモリ領域やデータ構造を確保し、そのメモリアドレスをCPUの対応するレジスタに登録して行う感じ。