OS自作入門

「OS自作入門」の編集履歴(バックアップ)一覧に戻る

OS自作入門 - (2013/03/17 (日) 01:16:04) の編集履歴(バックアップ)


OS自作入門を読んだ感想です。
完全な理解ではないので、適当に書かれています。

MacOSXでやったので、以下を参考にしました。
http://d.hatena.ne.jp/sandai/20120728/p2
https://github.com/sandai/30nichideosjisaku

1日目
helloos.imgをバイナリエディタで書きます。
NASMというアセンブラを改良した筆者作のnaskというアセンブラでアセンブラ初体験。
バイナリエディタで書いたものをアセンブラ記述で18万行を超えるコードを書きます。(DB命令のみ)
RESB命令も使って省略出来る部分を省略し、22行にまとめたコードを書きます。
この時点では意味不明なソースコードなので、コメントやもう少し意味が分かりやすい命令を使って50行のコードを書きます。

セクタ:フロッピーディスクは512バイトずつまとめて読み書きするので、512バイトを1セクタと呼ぶ。フロッピーディスクは約1440kb、つまり2880セクタで構成される。
ブートセクタ:フロッピーディスクの最初のセクタのことで、PCはまず最初のセクタを読み、最後の2バイトを見ます。この2バイトが「55 AA」でなければ、起動に必要なプログラムではないと解釈されてしまう。
IPL:initial program loader。普通のOSはまずブートセクタを読み、最後の55 AAを確認した後、その最初のセクタでOS本体を読み込むプログラムが書かれている。OS本体を読み込むための初期プログラム読み込み機のことをIPLと呼ぶが、ブートセクタと考えてよい。
2日目
テキストエディタの紹介でTeraPadを紹介される。