30日でできる!OS自作入門パート1(1日目)
『30日でできる!OS自作入門』という本を買いました。2006年に発売された本で今から12年前の本です。
この本を使ってOSの勉強をすると同時にブログに書くことでアウトプットをしていければと思います。
環境:windows7 64bit
0日(開発を始める前に)~1日目(PCの仕組みからアセンブラ入門まで)
ということで早速作業。まずはHello Worldという文字が表示されるだけのOS(?)を作り起動します。
方法はバイナリエディタで92160行入力(!)しそのイメージファイルをフロッピーディスクに書き込んで実行するという手順。
まずバイナリエディタというものが初体験でしたのでちょっと勉強。本ではbzというツールを使っていましたが動作するのがwindows2000までのようなので『stirling』をインストールしました。
新規で開くとこんな感じです。
ここにぽちぽち入力していくわけですがこれがとても大変….。なので本に付録していた完成ファイルを使用することにしました。ありがたや~。
フロッピーがないのでvirtual boxを使う
次の手順は作った(厳密には付録の)イメージファイルをフロッピーに書き込んで実行するのですが…フロッピーなんてありません。
代替案としてvirtual boxという仮想環境を作成することが出来るツールで起動できるようなので今回はその方法を使いました。virtual boxは仕事でもよく使っているのでよかったです。
virtual boxを開いたら新規で空の仮想マシンを作ります。
とりあえずメモリサイズはそのままいきます。
ここでデフォルトだと『仮想ハードディスクを作成する』にチェックが入っているのですが、今回は『仮想ハードディスクを追加しない』にチェックをします。
仮想マシンが作成されたら『設定』→『ストレージ』と進みます。
緑色の+アイコンを押すとメニューが出てくるので『フロッピーコントローラーを追加』を選択します。
設定が出来たら仮想マシンを起動します。
hello , worldと出力されました!
結局何をやったのか?
本の中でもここまでやってみて何をしたのか解説がありますが、正直よく理解できていません。端的に言うと付録のバイナリファイルをvirtual boxで読み込んだらhello, worldと表示されたということになってしまっています。
アセンブラとかバイナリファイルとか自分にはあまりなじみのない単語が出てきているので1日目が終わった段階で少し調べつつ勉強中です。
ただいつまでも1日目にいても仕方がないのでふわっとはしていますが進んで行きたいと思います。