OS自作入門 その8

OS自作入門五日目を読み終えた。

GDTとIDTの話。

GDTは global (segment) descriptor table の略。セグメンテーションの情報をメモリに保存したもの。

セグメンテーションとはメモリを任意のサイズの領域に切り分けて、それぞれの領域の最初の番地を0として扱える機能。

IDTは interrupt descriptor tableの略。

割り込みは各種デバイスなどの状態の変化に応じて処理を切り替える機能。

 

理解が足りていない。読み直す必要がありそうだが全部読み終わってからでいいか。

 

30日でできる! OS自作入門

30日でできる! OS自作入門

 

 

OS自作入門 その7

五日目の途中、基本的な文字表示まで。

ほぼ流し読み状態。C言語の文法をだいぶ忘れている。

 

30日でできる! OS自作入門

30日でできる! OS自作入門

 

 

OS自作入門 その6

4日目を読み終わった。

アセンブラでCの関数を書いた時の引数はどうなるのだろうか?と思ったら、4日目の最初に記述があった。

第一引数  [ ESP + 4 ]

第二引数  [ ESP + 8 ]

第三引数  [ ESP + 12 ]

(以下略)

となっているが、引数のデータ型に関係なく4バイトずつアドレスが進んでいくのだろうか?double型が引数の時はどうなる?

戻り値は EAXレジスタの値が使用されるらしい。

 

しかしこの本、読み進めていくごとに読むのが嫌になるな。くだけた語り口調で書かれているのは自分の肌には合わないようだ。読むだけ読んでさっさと別の本に移ろう。

 

30日でできる! OS自作入門

30日でできる! OS自作入門

 

 

 

OS自作入門 その5

Macでの開発環境構築。

 

https://github.com/sandai/30nichideosjisaku の解説にそって行った。

シェルスクリプトの実行は解説のとおりでは出来なかったので、

先のページのgitリポジトリをダウンロードし、その中のbin/install/install.shを使った。

これで個別のプロジェクトのフォルダ内で make run するだけで実行できるようになった。

先輩方、ありがとうございます。

 

 

30日でできる! OS自作入門

30日でできる! OS自作入門

 

 

OS自作入門 その4

開発環境をMacに移そうと思い試行錯誤。

Makefileを書きなおす必要があるそうだ。めんどい。

アセンブリをgasでコンパイルしようと試してみたがダメだった。

asコマンドでもできるのだろうか。

とりあえず本の通りに進めてみることにする。

 

30日でできる! OS自作入門

30日でできる! OS自作入門

 

 

OS自作入門 その3

4日目の途中まで。

全部写経しながらやろうかと思っていたけど、そもそも本にはソースが全て載っていない。CDの中身を見る必要があるなら写経する気も失せるな。

 CDからブートできるようにしたいのだが、どうしたらいいのか皆目検討もつかない。

 

30日でできる! OS自作入門

30日でできる! OS自作入門

 

 

OS自作入門 その2

30日でできるOS自作入門 二日目まで。

今回は手を動かすことなく、用意されたサンプルを実行しただけ。

一文字ずつ表示されるような記述だったけれども、CPUの処理速度が早過ぎるのか一瞬で表示される。

アセンブラはわかったようなわからないような。

自分で本格的にOSを作るならイメージファイルの作り方も勉強する必要がありそうだ。

 

 

30日でできる! OS自作入門

30日でできる! OS自作入門