OS自作入門─3日目

今回のタイトルは「32ビットモード突入とC言語導入」
おぉついにアセンブラからC言語に突入か?!
いや、しかしえらい速さでここに来るんだな。。。C言語ってもっと後かと思ってた。


1、2日目のIPL(初期プログラムローダ)は全然プログラムをロードしてなかったから、
本当にブートセクタからプログラムをロードするようにしよう!!ってことか。


アセンブラBIOS関数を使用して、ディスクを読み込むコードを追加か。。。なるほど。
あーこのシリンダとかセクタとかって基本情報の時にさっぱり頭に入らんかった話やね。
シリンダ→セクタの順番に格納されてるらしいのでそれを読み出して見ましょうってことらしい。


で、ここまでは16ビットモードで動作させてたんだが、今後は32ビットモードの方がいいらしい。
実はこの辺って正直よく分かってなかったんだが、本を読んで初めて納得できた。こういうことだったんだなと。
おぉ〜ここまで数々の力を借りていたBIOS様が32ビットモードからは利用できなくなる。
こんなんで開発が出来るのか?!出来るんだろうな。。。


ふむ。16ビットで起動して、BIOS様の力を借りて各種設定してから32ビットモードに移行か。。。賢いな。


ついにC言語導入。gccとかVisual C++ とか使ってると中間ファイルって気にしてなかったけど、
やっぱりそれぞれに意味があったんだな〜。納得納得。
新鮮だったのは、C言語で利用するためにアセンブラで関数を作ったって所かな。
アセンブラレベルじゃないと出来ない処理をC言語で実装するにはこの方法を使うらしい。へェ〜ヘェ〜。


C言語導入したら終わっちゃいました。
まとめ。

  • 16ビット→32ビットと起動することでBIOS様の力を借りながら高機能モードを使える
  • アセンブラで作った関数もC言語で利用できる


次は。。。明日も出来ると良いなぁ〜。