雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
  • linuxおよびFreeBSDで「30日でできる!OS自作入門」を進めていけないかと思い、いろいろやってみました。
  • ウチでの実験は、
    • FreeBSD 5.5
    • VineLinux4.2
  • にて行いました。いずれもほぼ最新のソフトにアップグレードしてあります。
    • また、ほぼ同じ状態でMacOS Xでも実行が確認されたようです。
  • また黒猫本のほうは以下を使用しました。
    • 30日でできる!OS自作入門 第7刷

'07/2/20現在、とりあえず全部の日付のものがmake、make runできるようになりました。ただ、すこし問題があります。一番最後をご覧ください。

環境を整える anchor.png Edit

  • オイラがやっている方法だと、たぶんrootでなくてもOKのはずです。
  • まずは適当な専用のディレクトリを作っておいてください。
    $ cd ~
    $ mkdir haribote
  • 続いて、はりぼてCDの内容をコピーしておきます。全部じゃなくていいですよ。
    $ mount /dev/cdrom /mnt                   ←まずはCDを読めるようにして
    作っておきます。
    $ cp -R /mnt/projects/* ~/haribote/       ←projects内をまるごとコピーしておきます。
Page Top

tolsetの用意 anchor.png Edit

  • [[こちら:http://thebbl.hideyosi.com/age/tolset/tolset2.tar.gz]から、hideyosi版tolsetを入手します。
  • 解凍してメイクすればOKのはずです。 make install 後にコマンド郡がまとまったokディレクトリをhariboteディレクトリの直下にz_toolsという名前で配置します。
    $ cp -a ok ../haribote/        ←例。各自環境にあわせて
    $ cd ../haribote
    $ ls
      z_tools/           22_day/                         ←  こういう状態にしておきます。
      01_day/            12_day/     23_day/
      02_day/            13_day      24_day/
                         :
                         :
  • ・・・あ” 当然ですが、qemuは別にインストールしておいてくださいね。・・・そうか!これはrootじゃないと出来ないんだっけ?(^^
Page Top

動かしてみよう anchor.png Edit

  •  なお、以降、本でいうところのinstall(FDに書き込む)はすべて未検証となります。
  •  わこうメモによると、dd if=helloos.img of=/dev/fd0 でFDにインストールし、実機で動作できるらしいです。
Page Top

1日目 anchor.png Edit

  • これ以降はすべてこのパターンとなるはずです。(違いがある時だけ書きます。)
$ cd ~/haribote/01_day                                 ←01_dayディレクトリに移動します。  
$ ls                                                   ←内容確認
   helloos0     helloos1     helloos2

$ wget http://thebbl.hideyosi.com/age/haribote/01day.patch   ←パッチをゲット!
$ ls                                                   ←内容確認(パッチがあるぞ!)
   01day.patch   helloos0     helloos1     helloos2

$ patch -p1 -f < 01day.patch                           ←パッチを適用!
  • 以上です。
  • これで、1日目の全てが動かせるはずです。(ただしmake installだけはダメ)
  • helloos0
    • ほぼ本と通りですが、コマンドがちょっとだけ違います。
    • 実行コマンドは本ではrun.batになっているはずですが、run.shと読み替えてください。
      $ cd ~/haribote/01_day/helloos0
      $ ./run.sh
  • helloos1
    • 上と同じく、全てのコマンドを*.batから*.shに読み替えてください。
      $ cd ~/haribote/01_day/helloos1
      $ ./asm.sh
      $ ./run.sh
  • helloos2
    • helloos1と同じなので省略・・・
Page Top

2日目 anchor.png Edit

  • 一日目と同じようにパッチを当てます。(01を02に読み替えてください。)
  • helloos3
    • helloos1と同じなので省略・・・
  • helloos4
    • P43。
    • はやり同じく読み替えます。
      $ cd ~/haribote/02_day/helloos4
      $ ./asm.sh
      $ ./makeimg.sh
      $ ./run.sh
  • helloos5
    • ここからはMakefileが登場します。ほぼ本の通りにできるはずです。
      $ cd ~/haribote/02_day/helloos5                 ←目的のディレクトリに降りる
      $ make                                          ←コンパイル
      $ make run                                      ←qemuで実行
      $ make clean                                    ←作ったものを削除
Page Top

3日目 anchor.png Edit

  • パッチを当てます。
    $ cd ~/haribote/03_day                               ←03_dayディレクトリに移動します。  
    $ ls                                                 ←内容確認
       harib00a     harib00d     harib00g     harib00j
       harib00b     harib00e     harib00h
       harib00c     harib00f     harib00i
    $ wget http://thebbl.hideyosi.com/age/haribote/03day.patch   ←パッチをゲット!
    $ ls                                                   ←内容確認(パッチがあるぞ!)
       03day.patch   harib00c     harib00f     harib00i
       harib00a      harib00d     harib00g     harib00j
       harib00b      harib00e     harib00h
    $ patch -p1 -f < 03day.patch                           ←パッチを適用!
  • 以上です。
  • これで、3日目の全てがmeke、make run等実行できます。(ただしmake installだけはダメ)
Page Top

4日目 anchor.png Edit

  • 上記3日目と同じ手順です。03を04に読み替えてください。

                  :

                  :

                  :

Page Top

27日目 anchor.png Edit

  • 上記3日目と同じ手順です。03_dayを27_dayに読み替えてください。
Page Top

28日目 anchor.png Edit

  • 上記3日目と同じ手順です。03_dayを28_dayに読み替えてください。
  • harib25gからmakeのコマンドが変わっています。本の通りですがインストール関係(make installとmake fulll_install)は例によって使えません。おのおのmakeかmake fullで作成したイメージファイルをddで処理してください。
Page Top

29日目 anchor.png Edit

  • 上記3日目と同じ手順です。03_dayを29_dayに読み替えてください。
Page Top

30日目 anchor.png Edit

  • 上記3日目と同じ手順です。03_dayを30_dayに読み替えてください。

Page Top

積み残しの問題 anchor.png Edit

  • なんでmake install関係がないんだ!
    • あえてそうしてあります。UNIX系はddで代用できますが、パーミッション等の問題が出ることがあるのでわざとそうしてあります。

最終更新: 2024-01-06 (土) 22:39:10 (JST) (72d) by ゲスト