Tuesday, February 09, 2010

Making An Operating System

はじめに



今月から? 30 日でできる! OS 自作入門 なる書籍を読んでいる. 内容は, この書籍のタイトルのとおりだ. この書籍において, Windows を前提として解説されているが, 自分は、まともな Windows 環境を用意していないため, 普段から慣れ親しんでいる Ubuntu で作業したいと考えていた. そこで, 実際に Ubuntu で作業し, どのように作業するか備忘録として公開しておく.

Chapter 1 :



Installing GHex



バイナリエディタなるアプリケーションをインストールして起動するよう解説される. Ubuntu にバイナリエディタはインストールされていないため, インストールする.

% sudo apt-get install ghex

Installing QEMU



この章において halloos.img というファイルをフロッピーディスクに保存し boot する作業が解説されている. また, フロッピーディスクを使用せず, QEMU を利用する作業も解説されている. そこで QEMU の使用についてメモする. なお, ホスト OS の環境は Ubuntu Linux 9.10 desktop (amd64) on ThinkPad X61 だ. QEME は processor emulator だ. 詳細について Web の記事を参照されたし.

まず, QEME をインストールする. % はプロンプトを意味する.

% sudo apt-get install qemu

このコマンドを実行すると, 最後のあたりで kernel モジュールを load できず failed と表示されるかもしれない. 自分の場合, 表示された. kvm_intel モジュールを load できなかったらしい. 通常 KVM を使用するとき BIOS において Hardware Virtualization を有効にするが, 自分はデフォルトのままだった. そこでマシンを再起動し F1 キーを押下し BIOS を設定する画面を表示させる. BIOS を設定する画面を表示させるためのキーは, おそらくマシンのベンダによって異なるが ThinkPad の場合, ほぼ F1 キーだ.

設定を変更した後, マシンを起動する. もう一度, インストールを実行してみよう.

% sudo apt-get install qemu

既にインストールされている, 的なメッセージが表示されるかもしれない. もしそうなら, load を失敗した kernel モジュールが正常に load されているかを確認する.

% lsmod | grep kvm

表示されれば正常に load されている.

Booting



続いて, HariboteOS を起動する. CD-ROM に保存されている helloos.img から起動する. QEMU を使用するとき, まずイメージファイルを作成するようだ.

% qemu-img create hariboteos-test 1474560b

上記のコマンドとオプションは, 以下を意味する.

- hariboteos-test という名前のイメージを作成する.
- 容量は 1474560 bytes

1474560 bytes の意味は, 書籍で解説されているとおり, 1440 x 1024 bytes の容量だ. 実際にコマンドを実行すると以下のように表示されるはずだ.

% qemu-img create hariboteos-test 1474560b
Formatting 'hariboteos-test', fmt=raw size=1474560
% ls -l hariboteos-test
-rw-r--r-- 1 satoshiabe satoshiabe 1474560 2010-02-08 23:53 hariboteos-test
%

ゲスト OS をインストールする準備を完了した.

% qemu -hda hariboteos-test -fda helloos.img -m 512 -boot a

上記のコマンドを実行すると HariboteOS が起動されるはずだ. qemu コマンドに指定したオプションの意味を確認したいなら man qemu を確認すべし.



続く...

No comments: