資料集
ここはhideyosiの学習帳です。いろいろな資料を集めたり整理したりしています。オイラ用のノートなので間違っていたり未完成だったりしますので信用度は相当低いことをあらかじめご了承くださいませ。
  • ソース を表示
  • ltmake は削除されています。
7: 2007-02-20 (火) 19:56:54 ソース バックアップ No.7 を復元して編集 8: 2007-02-22 (木) 21:38:31 ソース バックアップ No.8 を復元して編集
Line 4: Line 4:
--VineLinux4.0 --VineLinux4.0
-にて行いました。いずれもほぼ最新のソフトにアップグレードしてあります。 -にて行いました。いずれもほぼ最新のソフトにアップグレードしてあります。
 +--また、ほぼ同じ状態でMacOS Xでも実行が確認されたようです。
 +
-また黒猫本のほうは以下を使用しました。 -また黒猫本のほうは以下を使用しました。
--30日でできる!OS自作入門 第7刷 --30日でできる!OS自作入門 第7刷
Line 15: Line 17:
*環境を整える [#p981dbdc] *環境を整える [#p981dbdc]
-オイラがやっている方法だと、たぶんrootでなくてもOKのはずです。 -オイラがやっている方法だと、たぶんrootでなくてもOKのはずです。
--まずはとにかく、はりぼてCDの内容をコピーしておきます。全部じゃなくていいですよ。+-まずは適当な専用のディレクトリを作っておいてください。 
 + $ cd ~ 
 + $ mkdir haribote 
 + 
 +-続いて、はりぼてCDの内容をコピーしておきます。全部じゃなくていいですよ。
 $ mount /dev/cdrom /mnt                  ←まずはCDを読めるようにして  $ mount /dev/cdrom /mnt                  ←まずはCDを読めるようにして
- $ mkdir ~/haribote                        ←ホームにでも適当に専用ディレクトリを作っておきます。+作っておきます。
 $ cp -R /mnt/projects/* ~/haribote/      ←projects内をまるごとコピーしておきます。  $ cp -R /mnt/projects/* ~/haribote/      ←projects内をまるごとコピーしておきます。
 $ cp -R /mnt/tolset/z_tools ~/haribote/  ←z_toolsそのものをまるごとコピー。  $ cp -R /mnt/tolset/z_tools ~/haribote/  ←z_toolsそのものをまるごとコピー。
Line 32: Line 38:
         /* 必ずリンクしなければいけないラベルを指定 */          /* 必ずリンクしなければいけないラベルを指定 */
                       :                        :
 +
                     ↓↓↓                      ↓↓↓
 +
                       :                        :
         /* 例:  c:/osask/gg00libc.lib;  */          /* 例:  c:/osask/gg00libc.lib;  */
Line 43: Line 51:
--以上でとりあえずはOKです。+-続いてtolsetの用意です。 
 +-[[こちら:http://thebbl.hideyosi.com/modules/mydownloads/viewcat.php?cid=1]]より、hideyosi版tolsetをダウンロードし、専用ディレクトリ内においてください。 
 + $ cd ~/haribote 
 + $ ls 
 +   hidetol1.tar.gz    z_tools/    22_day/        ←  こういう状態にしておきます。 
 +   01_day/            12_day/    23_day/ 
 +   02_day/            13_day      24_day/ 
 +                       : 
 +                       :
 +-解凍し、コンパイルします。
 + $ tar xzvf hidetol1.tar.gz
 +           :
 +           :
 + $ ls
 +   hidetol1.tar.gz    z_tools/    hidetol1/
 +   01_day/            12_day/    23_day/
 +   02_day/            13_day      24_day/
 +                       :
 +                       :
--tolsetを準備します。 + $ cd hidetol1
--まず、同じようにCDからtolsetのソースをコピーしておきます。 + $ ls 
- $ cp -R /mnt/omake/tolsrc ~/             ←場所はどこでもいいですがharibote内だとこんがらがるので・・・ +    Makefile    bim2hrb      go_0023s    obj2bi4d    sartol0j 
--次に[[このパッチ:http://thebbl.hideyosi.com/age/tolset.patch2]]をダウンロードしてtolsrcディレクトリの上に置きます。 +    aksa1a      bin2obj0    hrblib0a    ok          t5lzma 
-//-COLOR(red){''※''パッチは07/2/18現在のものです} +    aska        doscmd0a    imgtol0d    osalink1    tk5lgpl1 
--COLOR(red){''※''新パッチを07/2/20公開しました。ページ内のリンク等は修正してあります。詳しくは[[こちら:http://thebbl.hideyosi.com/modules/bwiki/index.php?tolset]]をご覧ください。} +    bim2bi4w    edimg0i      makefont    readme.txt 
- $ cd ~/                                                      ←tolsrcの上で。 +
- $ wget http://http://thebbl.hideyosi.com/age/tolset.patch2 +
--tolsrcに降り、パッチを当てます。 +
- $ cd ~/tolsrc +
- $ patch -p1 < ../tolset.patch2 +
--パッチが当たったらMakefileが出来ているはずです。あとはそこでmakeあるいはgmakeを行ってください。コマンドがコンパイルされ、出来上がるはずです。+
 $ make  $ make
 +
 +-エラーなくコンパイルできたら、できあがったコマンド群をまとめます。
 $ make install  $ make install
--make install を行うと、okというディレクトリが出来、その中に出来上がったコマンドが全部コピーされます。全部あるかどうかチェックしてください。 + $ ls ok
- $ ls ~/tolsrc/ok +   bim2bin     gocc1plus   makefont     sjisconv 
-   bim2bin         edimg          gocc1plus       makefont       obj2bim +   bim2hrb     gocpp0       nask         t5lzma 
-   bim2hrb         gas2nask        gocpp0         nask           sjisconv +   bin2obj     gas2nask    golib00     naskcnv0 
-   bin2obj         gocc1          golib00         naskcnv0+   edimg        gocc1        haribote    obj2bim 
 + 
 +-これでtolsetの準備は完了です。最後に出来上がったtolsetをz_toolsにコピーして起きます。
--全部出来上がっていたらOKです。これらをz_toolsにコピーしてください。 + $ cp ok/* ~/haribote/z_tools/
- $ cp ~/tolsrc/ok/* ~/haribote/z_tools/+
-以上で準備はOKです。 -以上で準備はOKです。
Line 81: Line 105:
**1日目 [#y81f9302] **1日目 [#y81f9302]
 +-これ以降はすべてこのパターンとなるはずです。(違いがある時だけ書きます。)
 +
 + $ 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日目の全てが動かせるはずです。COLOR(red){(ただしmake installだけはダメ)}
 +
-helloos0 -helloos0
---これはまあ、なんもせんでも動くはず。qemuの実験を兼ねてやってみます。 +--ほぼ本と通りですが、コマンドがちょっとだけ違います。 
---ディレクトリに降りて、qemuを実行。これは、本で言うところの'' run.bat''相当です。+--実行コマンドは本では''run.bat''になっているはずですが、''run.sh''と読み替えてください。
 $ cd ~/haribote/01_day/helloos0  $ cd ~/haribote/01_day/helloos0
- $ qemu -fda helloos.img & + $ ./run.sh
-helloos1 -helloos1
---本の通り、アセンブラで書かれたhelloos.nasをコンパイルするとhelloos.imgが出来上がる。(''asm.bat''相当) +--上と同じく、全てのコマンドを*.batから*.shに読み替えてください。
---あとはqemuで動かせる。(''run.bat''相当)+
 $ cd ~/haribote/01_day/helloos1  $ cd ~/haribote/01_day/helloos1
- $ ../../z_tools/nask helloos.nas helloos.img + $ ./asm.sh 
- $ qemu -fda hellos.img & + $ ./run.sh
Line 102: Line 138:
 +**2日目 [#h7fad81a]
 +-一日目と同じようにパッチを当てます。(01を02に読み替えてください。)
- 
-**2日目 [#h7fad81a] 
-helloos3 -helloos3
--helloos1と同じなので省略・・・ --helloos1と同じなので省略・・・
- 
-helloos4 -helloos4
--P43。 --P43。
---asm.bat相当のコマンド+--はやり同じく読み替えます。
 $ cd ~/haribote/02_day/helloos4  $ cd ~/haribote/02_day/helloos4
- $ ../../z_tools/nask ipl.nas ipl.bin ipl.lst + $ ./asm.sh 
---makeimg.bat相当 + $ ./makeimg.sh 
- $ ../../z_tools/edimg imgin:../../z_tools/fdimg0at.tek wbinimg \ + $ ./run.sh
-  src:ipl.bin len:512 from:0 to:0 imgout:helloos.img +
---あとは同じく、出来上がったイメージをqemuで実行。 +
- $ qemu -fda helloos.img & +
-helloos5 -helloos5
---ここからはMakefileが登場する。修正点をいちいち書いていたのではかなわないのでパッチを当てるようにする。 +--ここからはMakefileが登場します。ほぼ本の通りにできるはずです。 
- $ cd ~/haribote/02_day/helloos5                           ←目的のディレクトリに降りる + $ cd ~/haribote/02_day/helloos5                 ←目的のディレクトリに降りる 
- $ wget http://thebbl.hideyosi.com/age/02/helloos5.patch    ←パッチをゲット! + $ make                                          ←コンパイル 
- $ ls                                                      ←パッチがあることを確認 + $ make run                                      ←qemuで実行 
-   !cons_9x.bat    Makefile      make.bat + $ make clean                                    ←作ったものを削除
-   !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] **3日目 [#ub67a2ff]
-えーっと。これ以降は修正点もたくさんあるので一気にパッチ当てとなります。 +-パッチを当てます。 
- + $ cd ~/haribote/03_day                               ←03_dayディレクトリに移動します。 
-おそらくこれ以降はすべてこのパターンとなるはずです。(違いがある時だけ書きます。) + $ ls                                                 ←内容確認
- +
- +
- $ cd ~/haribote/03_day                                 ←03_dayディレクトリに移動します。 +
- $ ls                                                   ←内容確認+
   harib00a    harib00d    harib00g    harib00j    harib00a    harib00d    harib00g    harib00j
   harib00b    harib00e    harib00h    harib00b    harib00e    harib00h
   harib00c    harib00f    harib00i    harib00c    harib00f    harib00i
- $ wget http://thebbl.hideyosi.com/age/03/03day.patch  ←パッチをゲット!+ $ wget http://thebbl.hideyosi.com/age/haribote/03day.patch  ←パッチをゲット!
 $ ls                                                  ←内容確認(パッチがあるぞ!)  $ ls                                                  ←内容確認(パッチがあるぞ!)
   03day.patch  harib00c    harib00f    harib00i    03day.patch  harib00c    harib00f    harib00i
Line 172: Line 179:
**4日目 [#z757de49] **4日目 [#z757de49]
--上記3日目と同じ手順です。03_dayを04_dayに読み替えてください。 +-上記3日目と同じ手順です。03を04に読み替えてください。
- +
- $ 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に読み替えてください。 +
Line 212: Line 195:
-COLOR(red){harib25gからmakeのコマンドが変わっています。本の通りですがインストール関係(make installとmake fulll_install)は例によって使えません。おのおのmakeかmake fullで作成したイメージファイルをddで処理してください。} -COLOR(red){harib25gからmakeのコマンドが変わっています。本の通りですがインストール関係(make installとmake fulll_install)は例によって使えません。おのおのmakeかmake fullで作成したイメージファイルをddで処理してください。}
- 
---ついで。28日目をスクリーンショット!(これはFreeBSD上で) 
-#ref(bsd2_s.jpg) 
- 
**29日目 [#f190fe5e] **29日目 [#f190fe5e]
Line 224: Line 203:
-上記3日目と同じ手順です。03_dayを30_dayに読み替えてください。 -上記3日目と同じ手順です。03_dayを30_dayに読み替えてください。
- 
- 
---でかいのは[[ここ:http://thebbl.hideyosi.com/modules/bwiki/index.php?plugin=attach&pcmd=open&file=bsd2.jpg&refer=ltmake]]クリック〜。 
- 
- 
- 
-//*これ以降は?? [#qe367f5b] 
-//-申し訳ない。いまちょっと移植に問題が出ていて、29日目が正常に動作しません。なんとかがんばっておりますが・・・ 
-//-もし全部うまくいったら、上記のように何回もパッチ当てないで一気にドン!みたいなの作るつもりです〜。 
Line 239: Line 209:
-なんでmake install関係がないんだ! -なんでmake install関係がないんだ!
--あえてそうしてあります。UNIX系はddで代用できますが、パーミッション等の問題が出ることがあるのでわざとそうしてあります。 --あえてそうしてあります。UNIX系はddで代用できますが、パーミッション等の問題が出ることがあるのでわざとそうしてあります。
- 
- 
--圧縮後のサイズが大きいようだが?? 
---細かく検証していないのですが、29日目から圧縮が導入され、その成果が本に書いてありますよね?。おそらくそれらの値とはズレがあると思います。 
---最大の理由は、t5lzmaというコマンドがまだ移植できていないことです。 
---tekの圧縮はbim2binというコマンドで行うのですが、tekは1〜5までの種類があります。本では最大の効果を狙ってtek5を使うことで話を進めていますが、tek5を使おうとすると、bim2binは内部からt5lzmaを呼び出して使用しようとするのです。 
---これに対してtek2はbim2binが単独で行えるものなので、圧縮に関してはすべてtek2に切り替えてあります。 
---いずれt5lzmaが移植されればこの問題はなくなるのですが、現在ちょっと見通しが立っていないため、暫定措置としてtek2を利用していますので、ご了承ください。 


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