ホントに30日でできるのか、OS自作入門・9日目「メモリ管理」

昨日は1日勉強をお休みして今日からまた始めます。花の金曜日くらい勉強休みたいですよね。まあ、飲んでたわけではなくミステリー本読んでただけなんですけどね笑

ちなみに読んでたのは伊岡瞬の代償です。図書館で借りて読みました。重くて気分が悪くなる展開が続きますが、全体的には面白かったです。Huluでドラマもやっているようですが、あらすじだけ見ると改悪しまくっているような・・・。
 

とりあえずOS自作入門に戻ります。今日はメモリ管理です。個人的にはOSといえばメモリ管理がいちばん重要なのかな、と思っていたので楽しみにしていました。

前半はリファクタリングで大きくなったメインのファイルを分割したようです。かなり見やすいくなりましたが、個人的にはネストが深いところが残っているのが気になる・・・。

中盤はメモリ管理の準備としてメモリの容量チェックです。メモリの容量チェックくらいならBIOSとかで〜とか思いましたが、どうやらBIOS呼び出しだとアセンブラが長くなったりBIOSのバージョンにより色々切り替えないといけないため面倒なようです。そこでCとアセンブラを使って色々やろうとしていますが、CPUのキャッシュやコンパイラの最適化を考慮に入れないと上手く実装できないようです。・・・これはスクラッチで書くの無理だわ・・・。

後半はメモリの確保と解放です。デフラグやらメモリ枯渇を考えると複雑になりそうですが、ここは割り切って簡易的な実装にしているようです。また、C言語で書かれているので分かりやすいです。

ふむ。今日もソースコードを眺めただけですが勉強になりました。