【コラム】

OS X ハッキング!

210 Intel Macの新しい仮想化ソフト「VirtualBox」を試す

    海上忍  [2007/01/18]

    この1週間、いまだ触れることすら叶わないiPhoneに思いを馳せています。実際に使えるようになるとしても1年以上先ですから、考えるだけムダという話もありますが。まずはAirMac Extremeベースステーションを手に入れて、Apple TVを快適に視聴できる環境でもつくることにします。

    さて今回は、独InnoTekが開発した仮想化ソフト「VirtualBox」について。先行するParallelsとVMwareはプロプライエタリな製品だが、先日リリースされたOSE版はGPL 2準拠のフリーソフトウェア。現在のところ、完成度の高さでParallelsが頭一つ抜けている状況だが、コミュニティの盛り上がり方次第ではキャッチアップも可能な期待の星だ。

    とりあえずWindows版で試す

    OSE版をIntel Macへインストールする前に、バイナリパッケージの形で配布されているWindows版を使い、VirtualBoxの機能面を検証してみよう。

    手始めは対応するゲストOSの種類から。MS-DOSとWindows 3.1、Windows 95系(95/98/Me)にWindows NT系(NT 4/2000/XP/Server 2003)と、DOS/Windowsは一通りサポート。今月発売されるWindows Vistaにも対応している。ディストリビューションごとの挙動の違いは確認していないが、カーネル2.2以降のLinux、FreeBSDなどのいわゆる「*BSD」、SolarisもOK。OS/2を得意とするベンダーとして知られるInnoTekだけに、バージョン3以降のOS/2 Warpもリストにあるのはさすが、といったところだ。

    気になるのは趣味の"オルタナ系OS"だが、BeOS後継のZeta 1.21 Live-CDは、アイコンパレード(懐かしい響き!)のあとカーネルデバッガへ。APIレベルでAmiga OSと高い互換性を持つAROSは、画面解像度を選択した直後にフリーズ。我らがDarwin 8.0(x86)も、ブートはするがデバイスを検出する箇所でハングアップと、三戦全敗。このあたりのOSに実績を持つVMwareと比較すると、だいぶ見劣りしてしまう状況だ。

    パフォーマンスはといえば、それほど悪くない。具体的な数値は測定していないものの、GNUstep Live-CDの体感速度は良好。描画は若干テロテロするものの、許容範囲内といったところ。今回のテストマシンはAthlon MP 2600+ ×2(ただし/proc/cpuinfoでは1基だけ認識)という古めの構成だが、予想より使える。Intel/VTまたはAMD-Vに対応するCPUを搭載したマシンならば、より高速に動作するはずだ。

    しかしOS Xに目をやると、Ring0という特権モードにアクセスするカーネル拡張モジュールの移植が未了という話が。現在の段階では、おそらくParallelsやVMwareのパフォーマンスに大きく劣後するはずで、肩を並べるまでには多少の時間が必要になることだろう。

    Darwin 8.0は出走直後に無念のリタイア

    Zeta 1.21 Live-CDもこのとおり、カーネルデバッガに落ちてしまった

    VirtualBoxのインストール

    Intel MacにVirtualBoxをインストールするには、いくつかのパッケージが必要。Xcode Toolsは当然として、フリーなマルチメディアAPIのSDL、ELFバイナリ対応のGCCを別途用意しなければならない。後2者を手早くインストールするにはMacPortsが適当なので、まずはMacPortsの導入からはじめてみよう。

    $ curl -O http://svn.macports.org/repository/macports/downloads/DarwinPorts-1.3.1/DarwinPorts-1.3.1-10.4.dmg
    $ open DarwinPorts-1.3.1-10.4.dmg
    $ open /Volumes/DarwinPorts-1.3.1/DarwinPorts-1.3.1.pkg
    (このあとインストーラで作業)
    ※: Finkを導入済の場合は、シェルの初期化ファイルにある「. /sw/bin/init.sh」行をコメントアウト(行頭に「#」を挿入)しておくこと

    次に、シェルの初期化ファイル(~/.bash_profileなど)でコマンドサーチパスの定義を行う。筆者の環境の場合、次のとおり編集してMacPortsのコマンドが置かれたディレクトリ(/opt/local/bin、/opt/local/sbin)にパスを通した。

    export PATH=/usr/local/bin:/usr/X11R6/bin:$PATH
    ↓ ↓  ↓
    export PATH=/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/X11R6/bin:$PATH

    portなどのコマンドが実行可能になった後は、次のとおりコマンドを実行してportsの一覧を更新する。

    $ sudo port -d selfupdate
    $ sudo port -d sync

    これでいよいよ、SDLとELFバイナリ対応のGCC(i386-elf-gcc)のパッケージをインストールできる。次のとおりコマンドを実行し、しばし休憩……と、ここで紙幅が尽きた。1週間の休憩ということで、続きはまた次週。

    $ sudo port install libsdl
    $ sudo port install i386-elf-gcc

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン