【コラム】

OS X ハッキング!

94 PearPC再び

海上忍  [2004/06/07]

WWDCまであと3週間、巷ではいろいろな噂が飛び交っているが、やはり気になるのは新製品情報。2003年はPowerMac G5が公開されるなどネタは豊富だったが、今年はいかに?そういえば、昨年は12ヶ月以内にPowerPC G5が3GHzに到達するという話もあったような。出るのか、3GHz!?

さて、今回はPowerPCエミュレータ「PearPC」について。すでに第91回から2度にわたり取り上げているが、「OS Xが動く」ということでWindowsやLinuxのユーザからも大きな反響があり、それに呼応してのことなのか開発速度も増している。話はOS Xから多少(かなり?)脱線してしまうが、個人的に面白いと感じるのでこのまま進めることにする。

必要な道具

PearPCはWindows用にコンパイルされたバイナリも存在するが、LinuxなどWindows以外のプラットフォームはソースコードのみの提供となっている。開発にはCVSを利用したオープンなシステムが採用されているため、開発環境さえ整っていれば、正式リリース前のソースコードを入手して自力でコンパイルすることも可能だ。

PearPCではコンパイラにgcc 3.xの使用が推奨されているので、Windowsで動作するgccを用意しなければならない。選択肢としてはCygwinまたはMinGWが挙げられるが、CVSサーバからソースコードをダウンロードするにはCVSクライアントが必要になること、Perlなどの言語も揃えておいたほうがなにかと好都合なことを考慮すると、やはりCygwinを選択したほうが無難だろう。本稿でも、Cygwinの利用を前提に話を進めることにする。

ところで……文体が突然変わりますけれど……、このたび技術評論社から「WindowsでUNIX環境を実現! 今すぐ使えるCygwin」なる本を出しまして……よろしければ参考になさってください。どうかよろしくお願いします。

CVS版のPearPCをビルドする

CVSサーバには常に最新のソースコードが置かれているため、鮮度という点ではバージョンが付されて一般公開されるリリース版より格段に上だ。筆者は6月7日未明に最終の動作確認を行っているが、その時点ではWindowsにもネットワーク機能が追加され、エミュレーション速度もわずかながら向上している。

Cygwinを利用してCVS版PearPC(JITバイナリ)をビルドする手順は、以下に示すとおり。しばらく待てば、「src」サブディレクトリにCVS版「ppc.exe」が生成されるはずだ。

$ cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pearpc login
CVS password: ←何も入力せず[enter]を押す
$ cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/pearpc co pearpc
$ cd pearpc
$ aclocal && autoheader && automake -a && autoconf
$ ./configure --enable-cpu=jitc_x86
$ make
$ strip src/ppc.exe

なお、ネットワーク機能を利用する場合には、あらかじめWindowsに「OpenVPN」をインストールしておき、インターネット接続の共有(ネットワーク接続コントロールパネルを使用)を有効にしてから、PearPCの設定ファイルに以下の記述を追加すればOK。その後PearPCでOS Xを起動し、システム環境設定の「ネットワーク」パネルを開けば、NICが認識されるはず。IPアドレスの設定後、SafariでWebブラウジングするなどして動作を確認してみよう。

pci_rtl8139_installed =1
pci_rtl8139_mac = "de:ad:ca:fe:12:34"

CocoaBenchの結果は……

今のところPearPCではOS X定番のベンチマークソフト「Xbench」は動作しないが、CocoaBenchは使えることが判明したので、リリース版の0.1.2とCVS版の0.2pre(いずれもJITバイナリ)、G4Cube改(PPC 1.2GHz/640MB)で速度を比較してみた。なお、PearPCの実行環境は前回と同じくWindows XP SP1(Athlon MP 2600+×2、512MB)を使用している。

結果は下表のとおり。PowerPC 1.2GHzを搭載した実機と比較すると約47分の1という遅さだが、CVS版ではFile I/Oの改善が見て取れる。実際にPantherを動かしてみても、レスポンスが若干改善されたような印象だ。

CocoaBench 1.2.3の結果

  0.1.2CVS版(0.2pre)G4Cube(1.2GHz)
Number Chrunching 0.160.1615.85
Image Processing 0.120.2017.25
File I/O 0.360.8115.31
TOTAL 0.200.3416.07

    新着記事

    特設サイトの情報

    人気記事

    一覧

    新着記事

    特別企画

    一覧