VirtualBoxは、Innotekが開発したx86仮想マシンを作成可能な仮想化ソフトウェアの1つで後に同社をSun Micorsystemsが買収、Sun xVM VirtualBoxに、更にSunをOracleが買収、Oracle VM VirtualBoxとなり、オープンソース化されており、無償でダウンロードして利用できます。
各種Windowsバージョン、各種Linux、Mac OS X、SolarisといったOSをホストOS、Windows、BSD系UNIX、Linux、Solaris、OS/2といったOSをゲストOSとすることができ、ホスト・ゲスト共にx86とx64(AMD64/Intel64)の一方、または両方に対応しています。
VirtualBoxの機能は、https://www.virtualbox.org/manual/にあるようにとても多彩で、そのほんの一例として以下のような機能があります。
ユーザーインタフェースは、VirtualBoxの通常版GUI、簡易GUI(≒端末付きCUI)であるVBoxSDL、UNIX/Linux端末・エミュレータやコマンドプロンプトなどCUIから利用可能なVBoxManageコマンドを備え、他方、モニタなどのないヘッドレスLinux用VBoxHeadless、更には、別途プロジェクトとしてPHPで書かれたブラウザで利用可能なajaxによるwebインタフェースバージョンもあります。
スナップショット機能を備え、ツリー上に履歴管理もでき、いつでも、その時の状態に仮想マシンを復元することができます。
他の仮想マシンとの互換性もあり、VMwareなどでも使われるVMDK、Microsoftで使われるVHD、Parallels version 2のイメージファイルとして使われるHDDフォーマット、QEMUやKVM/QEMUで使われるQED/QEMU Enhanced Disk、QCOW/QEMU Copy-On-Write等々として仮想マシンを作成することも可能、各種仮想マシンのディスクイメージを相互に利用可能とするOVF/Open Virtualization Formatにも対応しています。
仮想マシンを表示せずにホストOS上にゲストOSで起動したアプリケーションを表示するシームレスモード、ホストOSとゲストOS間でデータ交換に利用可能な共有フォルダ、一方、または相互にコピー&ペースト可能なクリップボード共有機能もあります。
また、ゲストOSとホストOS間のアクセス方法の1つとしてホストOSのファイルシステムに関わらず、仮想ディスクファイル経由でゲストOSからホストOSのHDDへのアクセスを可能とする"raw hard disk access"/"raw disk access"(生の/元の/オリジナルのハードディスクへのアクセス)にも対応しています。
ホストOSがx64なら仮想CPUとしてIntel VTxやAMD-Vを利用することでx86の完全仮想化ができますし、実行中にメモリ増設可能なメモリバルーニング機能、より効率的なページフュージョン機能なども利用可能です。
更にVirtualBoxでは、別途、SDK/Software Development KitをインストールすることでプログラミングAPIを利用してVirtualBox自体を拡張することも可能となっています。
これは、ほんの一例に過ぎませんが、おもしろそうな機能が満載です。
Oracle VM VirtualBoxは、バージョン4.0から複数のコンポーネントに分割されるようになり、基本となるVirtualBoxに別途、Extension Pack(当面は1つもVirtualBox 4.2.0から試験的に導入中でソースコードパッケージでのみ利用可能なVNCやサードパーティ含め複数提供される可能性もある拡張機能パッケージ)をインストールしたり、適用することができるようになっています。
VirtualBox 4.0時点で唯一リリースされている初期バージョンのExtension Packをインストールすると下記のような機能がサポートされることになっています。
Extension Packは、[ファイル] > [環境設定]で表示されるポップアップ画面から、[機能拡張]を選択し、Extension Packのパスを指定することでインストール・適用でき、VirtualBoxをインストールしたフォルダ以下に自動でディレクトリ展開、利用可能にしてくれます。
ちなみにWindowsで作業する場合には、ダウンロードしたExtension Packに圧縮ファイルを示す拡張子[.tar.gz]などがあれば、伸張・解凍ソフトで、または、ダブルクリックなどで展開することもできますが、拡張子がなく、それらの方法でうまくいかない場合でも先のメニューから適用すればOKです。
更に仮想マシン(ゲストOS)ごとの機能拡張としてGuest Additionsもあります。
また、仮想マシンを作成しなくても既にOSやアプリケーションを予めインストール及び検査・済みの仮想アプライアンスと呼ばれるパッケージをインストールして即実行してみることもできます。