Macで「30日でできる! OS自作入門」の開発環境準備 その0・続
前回の続き。
Macで「30日でできる!OS自作入門」を成し遂げた人を参考にトライ!
github.com
説明通りに必要なものを集めます。
1. 作業用ディレクトリを作る
・HariboteOSとします。
2. 「30日でできる! OS自作入門」付属のCD-ROMデータからprojectsディレクトリとtolsetディレクトリをHariboteOSにコピーする
3. tolsetOSXのダウンロード
・ダウンロードリンク
http://shrimp.marokun.net/osakkie/wiki/tolsetOSX/
・tolsetOSX-070221.dmgという名前のファイルをダウンロードして解凍
#同じページにtolsrcOSX-070221.dmgがありますが、tolsetOSX-070221.dmgの方です。
・解答したデータからz_toolsディレクトリをHariboteOSにコピーする
4. Q.appをダウンロード
Q Emulator 0.9.0a89 for Mac - Download
ここまで出来たら作業用ディレクトリがこんな風になってるはずです。
HariboteOS/ |- projects (付属CD-ROMのデータ) |- tolset (付属CD-ROMのデータ) |- z_tools (tolsetOSX.dmgのデータ) |- Q.app (qemuのシンボリックリンク)
そしたら、シェルスクリプトを実行します。
$ curl https://raw.github.com/sandai/30nichideosjisaku/master/bin/install.sh | sh
実行結果:
% Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 139 0 139 0 0 52 0 --:--:-- 0:00:02 --:--:-- 52 100 134k 0 134k 0 0 29179 0 --:--:-- 0:00:04 --:--:-- 154k おわり!がんばってOS作ってね!
おっ、なんかうまくいったみたい。
何されたのかよくわからなかったが、ディレクトリを確認するとファイルが色々出力されていました〜
$ ls 01_day 08_day 15_day 22_day 29_day 02_day 09_day 16_day 23_day 30_day 03_day 10_day 17_day 24_day install.sh 04_day 11_day 18_day 25_day trash 05_day 12_day 19_day 26_day z_tools 06_day 13_day 20_day 27_day 07_day 14_day 21_day 28_day
#30日は間に合うか怪しいですが、一応スタートは切れました ( ^ ω ^ )
Macで「30日でできる! OS自作入門」の開発環境準備 その0
仕事で組み込みLinux関連の業務をやるようになって、
今までOSというものをまるで勉強して来なかったので、
ちょうどいいタイミングだから勉強してみようと思い始めました。
- 作者: 川合秀実
- 出版社/メーカー: マイナビ出版
- 発売日: 2006/03/01
- メディア: Kindle版
- この商品を含むブログを見る
あと、TEDでマット・カッツの30日間チャレンジのススメを見たのもあって、30日でできそうなものを探していたのでちょうどよかった。
この本はWindows用で書かれている。しかし、先人には同じようにMacでトライしている人がいるので、臆せず調べながらやってみることに。
まずは、さっそく付属のCD-ROMからデータをコピってmake installしてみる。
が・・・。
$make install (省略) gcc -c -Os -o cpp0main.obj cpp0main.c In file included from cpp0main.c:8: ./cc1drv.c:26:5: error: second parameter of 'main' (argument array) must be of type 'char **' int main(int argc, UCHAR **argv) ^ 1 error generated. make[6]: *** [cpp0main.obj] Error 1 make[5]: *** [all] Error 2 make[4]: *** [gocpp0] Error 2 make[3]: *** [all] Error 2 make[2]: *** [all] Error 2 make[1]: *** [all] Error 2 make: *** [install] Error 2
どうやらOSXのgccの問題らしい。下のページを参考にgccをアップデートしてもう一回make install。
MacOSXでOS自作覚え書き 下準備編 - It works!
$make install (省略) gcc -Wl,-s -o gocc1 ../drv_stdc/cc1main.obj c-parse.o c-lang.o attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-format.o c-semantics.o c-objc-common.o libcpp.lib libbackend.lib \ ../intl/libintl.lib ../libiberty/libiberty.lib ../go_lib/go_lib.lib ../go_lib/stdin.o ../drv_stdc/drv_stdc.obj ld: warning: option -s is obsolete and being ignored Undefined symbols for architecture x86_64: "___builtin_stdarg_start", referenced from: _pedwarn_c99 in c-errors.o _status_warning in c-format.o _build_stmt in c-semantics.o _build_message_string in libbackend.lib(diagnostic.o) _output_printf in libbackend.lib(diagnostic.o) _fnotice in libbackend.lib(diagnostic.o) _internal_error in libbackend.lib(diagnostic.o) ... ld: symbol(s) not found for architecture x86_64 collect2: error: ld returned 1 exit status make[4]: *** [gocc1] Error 1 make[3]: *** [all] Error 2 make[2]: *** [all] Error 2 make[1]: *** [all] Error 2 make: *** [install] Error 2
またしてもエラー。。。。。全然解決できなくて諦めました。
Macですでに完遂されている方のコードを参考にして次回から進めて行きます。
github.com
#30日で終わらない予感