資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
  • ソース を表示
  • ltmake は削除されています。
6: 2007-02-19 (月) 19:07:23 ソース バックアップ No.6 を復元して編集 現: 1970-01-01 (木) 18:00:00 ソース 編集
Line 1: Line 1:
--linuxおよびFreeBSDで「30日でできる!OS自作入門」を進めていけないかと思い、いろいろやってみました。 
--ウチでの実験は、 
---FreeBSD 5.5 
---VineLinux4.0 
--にて行いました。いずれもほぼ最新のソフトにアップグレードしてあります。 
--また黒猫本のほうは以下を使用しました。 
---30日でできる!OS自作入門 第7刷 
- 
-COLOR(red){'07/2/18現在、まだ完璧ではありません。いくつか問題があります。特に、29日目以降は問題がでて本のとおりにいきません} 
- 
- 
-*環境を整える [#p981dbdc] 
--オイラがやっている方法だと、たぶんrootでなくてもOKのはずです。 
--まずはとにかく、はりぼてCDの内容をコピーしておきます。全部じゃなくていいですよ。 
- $ mount /dev/cdrom /mnt                  ←まずはCDを読めるようにして 
- $ mkdir ~/haribote                        ←ホームにでも適当に専用ディレクトリを作っておきます。 
- $ cp -R /mnt/projects/* ~/haribote/      ←projects内をまるごとコピーしておきます。 
- $ cp -R /mnt/tolset/z_tools ~/haribote/  ←z_toolsそのものをまるごとコピー。 
- $ rm -f ~/haribote/z_tools/*.exe          ←間違えるとイヤなのでWin用のコマンドを削除 
--最後に、haribote.rulファイルを変更してください。 
- $ vi ~/haribote/z_tools/haribote/haribote.rul  ←お好きなエディタで 
- 
-                       : 
-         /* 例:  c:/osask/gg00libc.lib;  */ 
-       ../z_tools/haribote/harilibc.lib; 
-       ../z_tools/haribote/golibc.lib; 
- 
- label: 
-         /* 必ずリンクしなければいけないラベルを指定 */ 
-                       : 
-                     ↓↓↓ 
-                       : 
-         /* 例:  c:/osask/gg00libc.lib;  */ 
-       ../../z_tools/haribote/harilibc.lib; 
-       ../../z_tools/haribote/golibc.lib; 
- 
- label: 
-         /* 必ずリンクしなければいけないラベルを指定 */ 
-                       : 
- 
- 
--以上でとりあえずはOKです。 
- 
- 
- 
--tolsetを準備します。 
--まず、同じようにCDからtolsetのソースをコピーしておきます。 
- $ cp -R /mnt/omake/tolsrc ~/              ←場所はどこでもいいですがharibote内だとこんがらがるので・・・ 
--次に[[このパッチ:http://thebbl.hideyosi.com/age/tolsetbsd.patch]]をダウンロードしてtolsrcディレクトリの上に置きます。 
--COLOR(red){''※''パッチは07/2/18現在のものです} 
- $ cd ~/                                                      ←tolsrcの上で。 
- $ wget http://http://thebbl.hideyosi.com/age/tolsetbsd.patch 
--tolsrcに降り、パッチを当てます。 
- $ cd ~/tolsrc 
- $ patch -p1 < ../tolsetbsd.patch 
--パッチが当たったらMakefileが出来ているはずです。あとはそこでmakeあるいはgmakeを行ってください。コマンドがコンパイルされ、出来上がるはずです。 
- $ make 
- $ make install 
--make install を行うと、okというディレクトリが出来、その中に出来上がったコマンドが全部コピーされます。全部あるかどうかチェックしてください。 
- $ ls ~/tolsrc/ok 
-   bim2bin        edimg          gocc1plus      makefont        obj2bim 
-   bim2hrb        gas2nask        gocpp0          nask            sjisconv 
-   bin2obj        gocc1          golib00        naskcnv0 
- 
--全部出来上がっていたらOKです。これらをz_toolsにコピーしてください。 
- $ cp ~/tolsrc/ok/* ~/haribote/z_tools/ 
- 
--以上で準備はOKです。 
- 
--COLOR(red){・・・あ” 当然ですが、qemuは別にインストールしておいてくださいね。・・・そうか!これはrootじゃないと出来ないんだっけ?(^^} 
- 
-*動かしてみよう [#na7cd182] 
--COLOR(red){''※'' なお、以降、本でいうところのinstall(FDに書き込む)はすべて未検証となります。} 
- 
--COLOR(red){''※'' わこうメモによると、dd if=helloos.img of=/dev/fd0 でFDにインストールし、実機で動作できるらしいです。} 
- 
- 
-**1日目 [#y81f9302] 
--helloos0 
---これはまあ、なんもせんでも動くはず。qemuの実験を兼ねてやってみます。 
---ディレクトリに降りて、qemuを実行。これは、本で言うところの'' run.bat''相当です。 
- $ cd ~/haribote/01_day/helloos0 
- $ qemu -fda helloos.img & 
- 
- 
- 
--helloos1 
---本の通り、アセンブラで書かれたhelloos.nasをコンパイルするとhelloos.imgが出来上がる。(''asm.bat''相当) 
---あとはqemuで動かせる。(''run.bat''相当) 
- $ cd ~/haribote/01_day/helloos1 
- $ ../../z_tools/nask helloos.nas helloos.img 
- $ qemu -fda hellos.img & 
- 
- 
- 
--helloos2 
---helloos1と同じなので省略・・・ 
- 
- 
- 
- 
-**2日目 [#h7fad81a] 
--helloos3 
---helloos1と同じなので省略・・・ 
- 
- 
--helloos4 
---P43。 
---asm.bat相当のコマンド 
- $ cd ~/haribote/02_day/helloos4 
- $ ../../z_tools/nask ipl.nas ipl.bin ipl.lst 
---makeimg.bat相当 
- $ ../../z_tools/edimg imgin:../../z_tools/fdimg0at.tek wbinimg \ 
-   src:ipl.bin len:512 from:0 to:0 imgout:helloos.img 
---あとは同じく、出来上がったイメージをqemuで実行。 
- $ qemu -fda helloos.img & 
- 
- 
--helloos5 
---ここからはMakefileが登場する。修正点をいちいち書いていたのではかなわないのでパッチを当てるようにする。 
- $ cd ~/haribote/02_day/helloos5                            ←目的のディレクトリに降りる 
- $ wget http://thebbl.hideyosi.com/age/02/helloos5.patch    ←パッチをゲット! 
- $ ls                                                      ←パッチがあることを確認 
-   !cons_9x.bat    Makefile      make.bat 
-   !cons_nt.bat    ipl.nas    helloos5.patch 
- $ patch -f < helloos5.patch                                ←パッチを当てる 
- $ ls                                                      ←パッチ後の内容を確認(※1) 
-   !cons_9x.bat    Makefile        helloos5.patch  make.bat 
-   !cons_nt.bat    Makefile.orig  ipl.nas 
- $ head Makefile                                            ←ちゃんとパッチが当たっているか確認 
-   # デフォルト動作 
- 
-   default : 
-           gmake img                                      ←こうなっていればOK 
- 
-   # ファイル生成規則 
- 
-   ipl.bin : ipl.nas Makefile 
-           ../../z_tools/nask ipl.nas ipl.bin ipl.lst 
----COLOR(green){※1  Makefile.orgは元のファイルのバックアップ。Linux等ではない場合も多い} 
- 
- 
--さあ。これでOK。 
--このMakefileへのパッチにより、これまでと違ってmake runやmake cleanなどが使えるようになる。COLOR(red){(ただしmake installだけはダメ。このページの一番上の方を参照)} 
- 
- 
-**3日目 [#ub67a2ff] 
-えーっと。これ以降は修正点もたくさんあるので一気にパッチ当てとなります。 
- 
-おそらくこれ以降はすべてこのパターンとなるはずです。(違いがある時だけ書きます。) 
- 
- 
- $ cd ~/haribote/03_day                                ←03_dayディレクトリに移動します。 
- $ ls                                                  ←内容確認 
-   harib00a    harib00d    harib00g    harib00j 
-   harib00b    harib00e    harib00h 
-   harib00c    harib00f    harib00i 
- $ wget http://thebbl.hideyosi.com/age/03/03day.patch  ←パッチをゲット! 
- $ ls                                                  ←内容確認(パッチがあるぞ!) 
-   03day.patch  harib00c    harib00f    harib00i 
-   harib00a      harib00d    harib00g    harib00j 
-   harib00b      harib00e    harib00h 
- $ patch -p1 -f < 03day.patch                          ←パッチを適用! 
- 
--以上です。 
--これで、3日目の全てがmeke、make run等実行できます。COLOR(red){(ただしmake installだけはダメ)} 
- 
- 
-**4日目 [#z757de49] 
--上記3日目と同じ手順です。03_dayを04_dayに読み替えてください。 
- 
- $ cd ~/haribote/04_day                                ←04_dayディレクトリに移動します。 
- $ ls                                                  ←内容確認 
-   harib01a    harib01d    harib01g 
-   harib01b    harib01e    harib01h 
-   harib01c    harib01f 
- $ wget http://thebbl.hideyosi.com/age/04/04day.patch  ←パッチをゲット! 
- $ ls                                                  ←内容確認(パッチがあるぞ!) 
-   04day.patch  harib01c    harib01f 
-   harib01a      harib01d    harib01g 
-   harib01b      harib01e    harib01h 
- $ patch -p1 -f < 04day.patch                          ←パッチを適用! 
- 
--以上です。 
--これで、4日目の全てがmeke、make run等実行できます。COLOR(red){(ただしmake installだけはダメ)} 
- 
- 
- 
-**5日目 [#c457662d] 
--上記3日目と同じ手順です。03_dayを05_dayに読み替えてください。 
- 
-**6日目 [#y7f65504] 
--上記3日目と同じ手順です。03_dayを06_dayに読み替えてください。 
- 
- 
- 
-                  : 
- 
-                  : 
- 
-                  : 
- 
-**27日目 [#r797a1ca] 
--上記3日目と同じ手順です。03_dayを27_dayに読み替えてください。 
- 
-**28日目 [#f190fe5e] 
--上記3日目と同じ手順です。03_dayを28_dayに読み替えてください。 
- 
--COLOR(red){harib25gからmakeのコマンドが変わっています。本の通りですがインストール関係(make installとmake fulll_install)は例によって使えません。おのおのmakeかmake fullで作成したイメージファイルをddで処理してください。} 
- 
---ついで。28日目をスクリーンショット!(これはFreeBSD上で) 
-#ref(bsd2_s.jpg) 
- 
---でかいのは[[ここ:http://thebbl.hideyosi.com/modules/bwiki/index.php?plugin=attach&pcmd=open&file=bsd2.jpg&refer=ltmake]]クリック〜。 
- 
- 
- 
-*これ以降は?? [#qe367f5b] 
--申し訳ない。いまちょっと移植に問題が出ていて、29日目が正常に動作しません。なんとかがんばっておりますが・・・ 
--もし全部うまくいったら、上記のように何回もパッチ当てないで一気にドン!みたいなの作るつもりです〜。 


トップ   編集 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 0, today: 0, yesterday: 0