1: 2007-02-17 (土) 15:12:15 |
現: 2024-01-06 (土) 22:39:10 ゲスト[RkE6jyzwW4E] |
- | *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/ doscmd0a/ hrblib0a/ 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で代用できますが、パーミッション等の問題が出ることがあるのでわざとそうしてあります。 |