雑記帳
ここはhideyosiの雑記帳です。テケトーに書き散らしてるだけなので間違っていたりとは普通にしてます。信用度は相当低いことをあらかじめご了承を。またご覧のようにWikiを使ってますが、hideyosi意外は書き込めません。
1: 2007-02-17 (土) 15:12:15 ソース バックアップ No.1 を復元して編集 現: 2024-01-06 (土) 22:39:10 ゲスト[RkE6jyzwW4E] ソース 編集
Line 1: Line 1:
-*FreeBSDでtolset! [#c27af417] +-linuxおよびFreeBSDで「30日でできる!OS自作入門」を進めていけないかと思い、いろいろやってみました。 
-*Linuxでもtolset! [#ucb6e0ef]+-ウチでの実験は、 
 +--FreeBSD 5.5 
 +--VineLinux4.2 
 +-にて行いました。いずれもほぼ最新のソフトにアップグレードしてあります。 
 +--また、ほぼ同じ状態でMacOS Xでも実行が確認されたようです。
-ええと、とりあえず現時点でFreeBSD、Linuxでtolsetがmakeできるようになったので、''まずは第一弾!''ということで、パッチを公開します。+-FreeBSD 5.5で実行している画像。御参考に! 
 +#ref(bsd2_s.jpg) 
 +#ref(bsd2.jpg,noimg)
--まず、はりぼてCDからtolsetのソースをどこか適当なところにコピーしておいてください。(ちなみに、別にrootでなくてもOKです) 
- $ mound /dev/cdrom /mnt 
- $ cp -a /mnt/omake/tolsrc ~/ 
--次にこのパッチをダウンロードしてtolsrcの上に置いてください。+-また黒猫本のほうは以下を使用しました。 
 +--30日でできる!OS自作入門 第7刷 
 + 
 + 
 +//COLOR(red){'07/2/18現在、まだ完璧ではありません。いくつか問題があります。特に、29日目以降は問題がでて本のとおりにいきません} 
 +COLOR(red){'07/2/20現在、とりあえず全部の日付のものがmake、make runできるようになりました。ただ、すこし問題があります。一番最後をご覧ください。} 
 + 
 + 
 + 
 +*環境を整える [#p981dbdc] 
 +-オイラがやっている方法だと、たぶんrootでなくてもOKのはずです。 
 +-まずは適当な専用のディレクトリを作っておいてください。
 $ cd ~  $ cd ~
- $ wget + $ mkdir haribote
- $ ls +
-   tolset.patch tolsrc+
--tolsrcに降り、パッチを当てます。 +-続いて、はりぼてCDの内容をコピーしておきます。全部じゃなくていいですよ。 
- $ cd tolsrc + $ mount /dev/cdrom /mnt                  ←まずはCDを読めるようにして 
- $ patch -p1 <; ../tolset.patch+作っておきます。 
 + $ 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: 
 +//        /* 必ずリンクしなければいけないラベルを指定 */ 
 +//                        :
--以上です。あとは、make install。(なお、installとは言っても単にコンパイルした実行ファイルをokというディレクトリにひとまとめにコピーするだけなので、システムになにかコピーしたりはしませんのでご安心を)+ 
 +**tolsetの用意 [#bf64f9e0] 
 +-[[こちら: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  $ ls
-   Makefile  bim2bi4w/ doscmd0ahrblib0a/  obj2bi4c/  sartol0j/ +   z_tools/           22_day/                         ← こういう状態にしておきます。 
-   aksa1a/   bim2hrb/   edimg0i/  imgtol0d/  tk5lgpl1+   01_day/           12_day/     23_day
-   aska/     bin2obj0/ go_0023s/  makefont/  osalink1/ +   02_day/           13_day      24_day/
- $ make install+
                     :                      :
                     :                      :
-                     : 
- $ ls 
-   Makefile  bim2bi4w/  doscmd0a/  hrblib0a/  obj2bi4c/  sartol0j/ 
-   aksa1a/  bim2hrb/  edimg0i/  imgtol0d/  ok/  tk5lgpl1/ 
-   aska/    bin2obj0/  go_0023s/  makefont/  osalink1/ 
- $ ls ok 
-   bim2bin*  bin2obj*  gas2nask*  gocc1plus*  golib00*  nask*      obj2bim* 
-   bim2hrb*  edimg*    gocc1*    gocpp0*    makefont*  naskcnv0*  sjisconv* 
----- 
-ええと、まずはとにかくコンパイルまで。 
-さらにこれをつかってはりぼてOSを実行できるのですが、また後で書きます+-COLOR(red){・・・あ” 当然ですが、qemuは別にインストールしておいてくださいね。・・・そうか!これはrootじゃないと出来ないんだっけ?(^^} 
 + 
 +*動かしてみよう [#na7cd182] 
 +-COLOR(red){''※'' なお、以降、本でいうところのinstall(FDに書き込む)はすべて未検証となります。} 
 + 
 +-COLOR(red){''※'' わこうメモによると、dd if=helloos.img of=/dev/fd0 でFDにインストールし、実機で動作できるらしいです。} 
 + 
 + 
 +**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 
 +--ほぼ本と通りですが、コマンドがちょっとだけ違います。 
 +--実行コマンドは本では''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と同じなので省略・・・ 
 + 
 + 
 +**2日目 [#h7fad81a] 
 +-一日目と同じようにパッチを当てます。(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                                    ←作ったものを削除 
 + 
 + 
 +**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/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等実行できます。COLOR(red){(ただしmake installだけはダメ)} 
 + 
 + 
 +**4日目 [#z757de49] 
 +-上記3日目と同じ手順です。03を04に読み替えてください。 
 + 
 + 
 +                  : 
 + 
 +                  : 
 + 
 +                  : 
 + 
 +**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で処理してください。} 
 + 
 +**29日目 [#f190fe5e] 
 +-上記3日目と同じ手順です。03_dayを29_dayに読み替えてください。 
 + 
 + 
 +**30日目 [#f190fe5e] 
 +-上記3日目と同じ手順です。03_dayを30_dayに読み替えてください。 
 + 
 + 
 + 
 +---- 
 +*積み残しの問題 [#z9103cca] 
 +-なんでmake install関係がないんだ! 
 +--あえてそうしてあります。UNIX系はddで代用できますが、パーミッション等の問題が出ることがあるのでわざとそうしてあります。