忍者ブログ
2024.11│ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
プログラミング関連での備忘録なんかを載せています。
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
プロフィール
HN:
たっく
年齢:
42
性別:
男性
誕生日:
1982/03/11
職業:
システムエンジニアなの?
最新コメント
最新トラックバック
ブログ内検索
アーカイブ
アクセス解析
2024年11月23日 (Sat)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2009年11月07日 (Sat)
さて、1日目を始めます。

1日目の最初をざっと読むと、とりあえずブートローダーの部分だけを作ってみようと言う事の様です。

「30日でできる!OS自作入門」はWindowsを開発環境としてに書かれているのですが、私はWindows VistaでMicrosoftに愛想を尽かして、Ubuntuに乗り換えた人間なので、開発も基本的にUbuntu上でやっていきます。
※著者のホームページにはLinuxでの開発方法と言うのも載っている様ですが、まだ見ていないです。できるだけ、自分であれこれ悩んで進んでみようかなと思っています。

と言うことで、「30日でできる!OS自作入門」に書いている内容をそのままトレースではなく、色々悩む部分がでてくると思います。

まず、バイナリエディタです。Windows歴が長かったもので、Linuxのバイナリエディタを知りません。

ネットで調べたところ、普段使っているvimでバイナリ編集出きるとのことでした。

早速やってみます。
コマンドラインで、
$ vim aaa.bin
を実行します。

aaa.binファイルに適当な文字列を入れて保存します。

そしたら、今度は「:%! xxd」とコマンドを打ち込む事で、バイナリを編集できる様です。

ちょっとバイナリをいじってみました。
いじった後で、
「:%! xxd -r」を実行してテキストに戻すと、たしかに編集できている様です。

ですが!

やたらと編集しづらいです。
使い方が分かっていないせいもあるんでしょうが、バイナリモードで00をずーーーっと埋めたい場合に、そのままずーーっと00を書いていって、テキストモードに戻したら、1行分しか追加されていません。

「30日でできる!OS自作入門」を読むと、大量に00を埋める箇所があるので、これでは困ります。

方法はあるのかもしれませんが、バイナリエディタなんて最初しか使わないだろうと思い、ここは手を抜くことにします。
※本当は、こういうところを突き詰めていくと勉強になるんですが・・・・・・

GUIのツールないかな〜と調べたところ、「GHex」と言う物がある様です。
Ubuntuのリポジトリにもあるようなので、Ubuntuの「アプリケーションの追加と削除」で「GHex」を入れました。簡単にアプリケーション追加できるのが、Ubuntuの魅力ですね。

ってことで、早速バイナリファイルの編集をしました。
「30日でできる!OS自作入門」をみながら、入力していきます。
ファイル名は「helloos.img」です。

e60eed3c.png

最初の部分をサクサクと入力して、途中から00で埋めていきます。
面倒くさいです・・・・コピペをしようとおもったら、文字はコピペできるのに、00はコピペ出来ない!

これは困った仕様だ!

しょうがないので、一旦文字を入力して、後で置換する方法をとりたいと思います。
埋める文字は、何でもいいですが、とりあえず他の箇所で使われていなかった「a」を使用しました。

c1585f68.png

で、置換っと。
4aabe45e.png

c19cb400.png

これで、問題なく00埋めが出来ました。

あとは、「30日でできる!OS自作入門」に書いている様に、
途中の00以外のところを埋めてっと、
d5568ee9.png

2fdbb938.png


これを保存してイメージファイルができました。

さて、これでフロッピーにこのイメージを書き込んで、PCに入れて起動させれば、画面に「hello, world」が表示されるはずですが、生憎フロッピーを持っていません。
あと、実機でこんなの試したく無いです。

と言うことで、VMWareを使用します。
この前、普段使っているPCにVMWarePlayer3.0をいれたので、ちょうどいいです。

仮想マシンを作って、先ほどバイナリエディタで作ったイメージファイルを、フロッピーのイメージとして読み込んで、起動します。
b86ee104.png

おお〜「hello, world」が表示できました。

次は、アセンブラを使用して今回と同じ物を作ります。

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
←No.8No.7No.5No.4No.3No.2No.1No.6