3日目です.
余計なことをしていたら,結構時間がかかってしまった.現在進めている本は2006年の本なので,実はかなり情報が古い.でも,OSの根本の部分ってそんな簡単に変わらないと思うので,無駄になることはないはずだ.多分.また,組み込みOSの方はたぶんCPUとかの組み立てからやるのだけど,レジスタとかメモリとか利用していると実際にそれらを見てみたくなるのはわかる.余裕があればいつかやってみたいな.そっちは2010年でまだ新しいしね.
前回同様やったことの整理をする.
2日目
今まで
- naskでアセンブリコードからディスクイメージ全体を生成する
- qemuでエミュレートする
これから
- naskにはアセンブリコードからブートセクタを生成してもらう
- ディスクイメージは,edimg(筆者作のディスクイメージ管理ツール) を使用して生成する
- qemuでエミュレートする
つまり
Makefileが以下のように書きかわるというワケ.
1 2 3 4 |
|
↓
1 2 3 4 5 6 7 8 9 10 11 |
|
3日目
アセンブラの命令とかレジスタの略称とかをまとめた用紙を作った.すぐわからなくなる.
今まで作っていたのはIPL(初期プログラムローダ)というらしい.今回はOS本体のプログラムをロードするまでが目的(即ち,IPLの完成).
IPLにはフロッピーディスクの全情報を読み込ませる(実際にはシリンダー10まで).OS本体はC言語とアセンブリ言語を組み合わせて記述し,ロードする.
コンパイル時に様々な中間言語が登場する.かなり回りくどい.でも,こういう中身を知っておくのは大事だと思う(だからこそ自作OSに手を出してる部分もある).
とりあえず,真っ黒な画面を生成しただけだけど今回はおしまい.
雑記
書籍の古さもあって,出来上がりのGUIが一昔前のOSになりそう.フロッピーディスクも今時使えないし.
- GUIを今風にする
- USBからブートする
の2点がこの本から発展した個人的な課題になりそう.とりあえず,見れるものを作っておきたい.