記事を書いた日
2008/06/06
更新した日
2008/12/06
Pre-virtualizationを使ってみます。
ということで、まずは紹介です
探してみると日本語の資料が少ないですね。
こんなエントリを書いてしまったらまずいような気がしますが、やはり僕も日本語の資料がほしいので書きます。
気をつけていますがもしかしたら間違ったことを書いてしまっている可能性があるので、嘘を嘘と見抜けない方は読まないほうがいいかもしれません。
では始めましょう。
Pre-virtualizationとは
Download
英語が堪能な方は適当にGetting Startのページを流し読みして勝手に始めてください。
そうじゃなくても「おまえの下手な解説なんか誰が読むかボケ」っていう人も勝手に始めてください。
とにかく日本語の資料が少なくて困っていますという方はまず英語を読む努力をしましょう。
最近Marcurialを用いて管理を始めたようです。以前は単純なダウンロードページしかありませんでした。
Mercurialを使ってみたいという方は
こちらをどうぞ。
解凍
解凍します。zipで落としてきた場合はunzipコマンドで解凍できます。tar.bz2とかの場合はtarでどうぞ。
unzip afterburner.zip
準備とか
以下は解凍したディレクトリ内で行います。別のディレクトリで行ってもできますが、面倒くさいので省きます。makeのことを分かってる人は適当にほげほげしてください。
cd afterburner
で、makeします。
make -f ./Makefile
make menuconfig
使うカーネルとかXenとかマイクロカーネルとかいろいろ設定します。
ここの情報についてはそのうち書くかもしれません。
最後に
make installs
これでいけます。必要なファイルとかがダウンロードされてインストールされるはずです。
いけますと書きましたが、僕はうまくいきませんでした。
うまくいかない人は↓のエラーとかを読んで下さい。
各ファイルがインストールされるディレクトリは、makeを実行したディレクトリ内に作られるディレクトリです。
エラーとか
エラーとか1
なんかコンパイル中にエラーが出てとまったりします。
そういうときはコンフィグを見直してみたりします。
あとはgccのバージョンを代えてみたりするとか。
ちなみに出るエラーはこれ
Building dietlibc in /home/yoshi/src/afterburner-26664bde9fef/extern/dietlibc-0.30
make[1]: *** No targets specified and no makefile found. Stop.
make: *** [/home/yoshi/src/afterburner-26664bde9fef/extern/dietlibc-0.30/bin-i386/dietlibc.a] Error 2
エラーとか2
なんかいろいろいじって試してみたところ、ちょっとすすんだんだけどまたエラーで止まった。次はこれ
*** This configuration is not supported in the following subdirectories:
target-libf2c target-libffi target-boehm-gc target-zlib target-libjava zlib fastjar target-libobjc
(Any other directories should still work fine.)
/home/yoshi/src/afterburner/usr/bin/ld: unrecognized option '--hash-style=both'
/home/yoshi/src/afterburner/usr/bin/ld: use the --help option for usage information
collect2: ld returned 1 exit status
*** The command 'gcc -o conftest -g -O2 conftest.c' failed.
*** You must set the environment variable CC to a working compiler.
make: *** [receipts/install-gcc-3.4.4] Error 1
ここで出たエラーの原因がわからなかったので、config.logを見てみましたら、
glibc-2.4
deb http://ftp.jp.debian.org/debian/ etch main contrib non-free
deb http://ftp.jp.debian.org/debian/ sid main contrib non-free
deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
sid,lennyを加えることでglibc-2.7がaptitudeで入りますが、不安定版の要素が混じるので自己責任でお願いします。
ともあれ、これでとりあえず解決できました。
エラーとか?
gcc-4.1だとコンパイルできなかったりしました。
解決するためには、makeのときにgcc-3.4を使いました。
やりかたは省略します。[gcc 切り替え]とかでぐぐるといいと思います。
asm-parser
この研究は仮想計算機の高速化が目標になっています。アセンブリ言語レベルでの命令書き換えが特徴の一つです。
afterburner/asm-parser/でANTLRを使用してアセンブリ言語の書き換え器を作成しています。
READMEにはトップディレクトリで
make menuconfig
make world
で大丈夫と書いてありますが、僕は結局うまくいかなかったので僕がやったやり方を載せておきます。
java antlr.Tool
make
でバイナリが作成されます。が、実効してみたところこんなエラーが出てきました。
antlr-config がありません
Makefileを見てみたところ、コンパイルフラグの設定にantlr-configというコマンドを用いているみたいです。afterburner/usr/bin/にあったんですけど、なんでエラー吐くんでしょうね。よくわかんないです。
たぶんこれを/usr/binとかにコピーすればうまくいくんでしょうね。
で、antlr-2.7.7のインストールが終わったら、
java antlr.Tool Asm.g
make
とやってみてください。
実行
maek run-qemu
で実行できるみたいです。
最終更新:2008年12月06日 20:08