30日でできる!OS自作入門(Day 3-2)
32bitモード
雑に32bitの利点
・単純に表せる数が増える
・使えるメモリがいっぱい増える
・保護機能を入れ込むことができる
欠点
・BIOSを利用できなくなる(BIOSは16bit用の機械語で書かれているから)
16bitモードと32bitモードでは機械語の命令番号も解釈の方法も異なるため全く別物と考えたほうが良い。つまり、32bitモードに移ってからはBIOSは使えなくなるため、BIOSでやっておきたいことは先にやり終えてから32bitモードへ移らなければいけない。
BIOSでやっておきたいこと
・画面モードの設定
・キーボードの状態の取得
・それらに関する情報の保存
C言語の導入
32bitモードに移るとついにC言語でOSを作ることができるようになる。。。が、実はC言語への移行はそう簡単な話ではない。今はまだ難しいことだらけなので後回し。
C言語とブートセクタを組み合わせて使うためには、機械語へ出力(順番的には.gas(gcc系のアセンブラ)→.nas(nask,nasm系のアセンブラ)→.obj(オブジェクトファイル)→.bim(本独自の形式、オブジェクトファイルは単体では動かないので必要な情報を加えたもの)→hrb(欲しかった元のC言語の機械語Ver.))する必要がある。
こうして出来上がった機械語をブートセクタの機械語とくっつければC言語で開発したOSが遂に完成する。難しい・・・