『30日でできる! OS自作入門』川合 秀実氏(著)の開発環境をMacでも扱えるようにします。ここの通りにすればWindowsとほぼ同等の環境を用意できるので、Macでも本書の内容に沿って学習を進めていくことが可能です。
以下の環境で正常に動作しているか確認しています。
- OS
- Mac OS X Lion 10.7.4
- テキストエディタ
- Emacs
- 書籍で紹介されているTeraPadはMacには無いので自分の慣れたやつ使ってください
- バイナリエディタ
- 0xED
- http://www.suavetech.com/0xed/0xed.html
- Mac版の使いやすかったバイナリエディタです
パパっといろいろ必要なものを揃えます。
HariboteOS
という名前のディレクトリをホームディレクトリに作成- ホームディレクトリはFinderのメニューバーから「移動>ホーム」で表示された場所
- 『30日でできる! OS自作入門』付属のCD-ROMデータのうち、
projectsディレクトリ
とtolsetディレクトリ
をさっき作成したHariboteOSディレクトリ
にコピー - tolsetOSXをダウンロード
- ダウンロードページ→http://shrimp.marokun.net/osakkie/wiki/tolsetOSX/
- tolsetOSX-070221.dmgという名前のファイルをダウンロードして解凍
- 解凍したデータのうち
z_toolsディレクトリ
をHariboteOSディレクトリ
にコピー
- Q.appをダウンロード
- ダウンロードページ→http://www.kju-app.org/
- 「Download - Free」をクリックしてダウンロードして解凍
- (現時点でバージョンはQ-0.9.0a89)
- 解凍したデータのうち、
Q.app
をHariboteOSディレクトリ
にコピー- クセでApplicationsに入れたりしないようにね
最終的に下記のような構造になっていれば問題無いです。
- ホームディレクトリ
- HariboteOS
- projects(付属CD-ROMのやつ)
- tolset(付属CD-ROMのやつ)
- z_tools(tolsetOSXのやつ)
- Q.app
- HariboteOS
細かい部分の調整と私が書いたMac用のMakefileというファイルをダウンロードします。これをすることでCD-ROMのサンプルを簡単に実行することができます。
めんどくさいのでこれらの設定はシェルスクリプトを使います。シェルスクリプトとは何かというと、えーと、まあ便利なやつですw。知らない人は調べてみてください。
それでシェルスクリプトの実行ですがターミナルを開いてください。ターミナルを知らない人は「アプリケーション>ユーティリティ>ターミナル」で見つかると思います。そして次の通りに実行してください。
$ curl https://raw.github.com/sandai/30nichideosjisaku/master/bin/install.sh | sh
curl〜からの部分をコピーして、ターミナルに貼り付けて実行するだけです。$を入れないようにしてください。
うまくいっているかどうか確認してみてください。
$ cd ~/HariboteOS/01_day/helloos0
$ make run
実行して以下のように表示されていれば成功です。
どうやってサンプルを実行すればいいかわからない!って人のための簡易講座。細かい説明はしないので駆け足で実践的に進めます。
helloos.imgをバイナリで書けという鬼畜命令が下るところですね。わからなかったらやらなくてもいいんですが、やるんだったら0xEDエディタを使って書くと良いです。
このように書きます。
書籍通りの表示にするにはウィンドウの幅を調節して右側を、
0000000 EB 4E . . . . . .
0000010 02 E0 . . . . . .
.
.
.
みたいな桁になるようにするとできます。こうして最終的にできたのが01_day/helloos/helloos.img
になります。
自分の書いたやつを使いたいのであれば、01_day/helloos
にあるhelloos.img
を上書きしてください。(不安なら上書き前のhelloos.img
をデスクトップとかに保管するとかして)
そうしてターミナルを開いて、
$ cd ~/HariboteOS/01_day/helloos0
$ make run
とすれば書籍の「最初のOS?」の画像の通りに表示されます。
最初に18万行を超えるやつ書けとか言われます。著者には悪いですがスルーしましょうw。めんどくさいだけですからね。
次にまともな長さのソースプログラムってのがありますが、これは練習がてら書いてもいいかもしれません。helloos.nas
というファイル名で書いてみてください。
最終的にできたのが01_day/helloos1
にあるhelloos.nas
になります。自分で書いたやつを試したいのであれば上書き保存してください。(例によって不安なら上書きする前にサンプルのやつは保管しておきましょう)
あとはターミナルからmakeします。
$ cd ~/HariboteOS/01_day/helloos1
$ make run
たぶん最初と同じような画面が表示されるはずです。
ここも自分で書いたら01_day/helloos2/
にあるhelloos.nas
を上書き保存して実行してください。これまたmakeします。
$ cd ~/HariboteOS/01_day/helloos2
$ make run
実は今まで書いたコードは全部同じ意味のコードです。だからQEMUの表示内容も同じです。
たぶんcd ~/HariboteOS/01_day/helloos0
やmake run
の意味がわからないかもしれません。詳しくは検索してください。「cd コマンド」や「make コマンド」などでヒットすると思います。
cd
はともかくmake
は難しいですね。少しだけ補足しておきますと、01_day/helloos0
や01_day/helloos1
や01_day/helloos2
の中身を見てください。「Makefile」というファイルがありますよね。
make
というのはこの「Makefile」を実行するためのものです。ちょっとのぞいてみましょう。01_day/helloos2
のMakefileは以下の通りです。
run :
../../z_tools/nask helloos.nas helloos.img
cp helloos.img ../../z_tools/qemu/fdimage0.bin
make -C ../../z_tools/qemu
これは「make run
と入力されたらrun : 以下の指定されたことをやりなさいよ」という指示になってます。指定されたことというのは../../z_tools/nask helloos.nas helloos.img
みたいなやつです。
これから先(27日目のharib24gあたりまで)はこのmake run
でサンプルのOSを実行できるようになってるので、よくわからなくてもmake run
していけばサンプルは実行できます。そのように全てMac用に書き直しているからです。
なので困ることはないんですが、本書ではMakefileの整理が流れの中で何度が行われいます。そのときにどうなってんのかなーぐらいは把握しておくと良いと思います。
せっかくなので2日目もやってみましょう。……ってやることあんまりなかった。
02_day/helloos3
にあるhelloos.nas
のソースコードの解説です。一応make run
できるようにしてますが、今までと同じ内容が起動されるだけなのでやらなくてもいいと思います。
02_day/helloos4
をのぞいてみてください。今まではhelloos.nas
だったのがipl.nas
になりました。それにあわせてMakefileも少しだけ変化があります。どのように変わったかについては本書に書いてある通りです。
本書ではここから本格的にMakefileが導入されます。どのようなコマンドが使えるのか本書を読みつつ、02_day/helloos5
にあるMakefile
をのぞいてみてください。make run
以外にもいくつかありますよ。
最後にmake
をやってみます。
$ cd ~/HariboteOS/02_day/helloos5
$ make run
$ make src_only
こんな感じですね。make src_only
が何なのかは本書を読んでください。
分からない人にとっては言葉足らずの内容だったかもしれません。しかし、このあたりのことは知識として持っていないとこれから先厳しいと思います。知識が足りないなと思った人はがんばってください。
とりあえずこんな感じでサンプルを試しつつ学習してくことになります。
あと、自分でコードを書きながら学習していこうと考えている人はMakefileが何をやっているのか分からないと難しいです。Makefileがわからないのであれば、現状ではサンプルのコードを読みながらサンプルを実行していく学習スタイルが良いと思います。
電話帳並みに分厚い本なのでいろいろ苦労することが多いと思いますが、ぜひともがんばってやってみてください。応援しています。ではでは。
- 「30日でできる! OS自作入門」のサポートページ
- 公式サポートサイト
- tolsetOSX
- Mac版のtolset配布ページ
- Q - [kju:]
- Mac版のQEMU配布サイト
- 0xED
- バイナリエディタ配布サイト
なんかうまく動かないぞーってところがあれば連絡ください。何日も待たせるようなことはないと思います。