Virtual Machineの種類
主な仮想コンピュータ
| 名称 | 方式 | ホストOS | ゲストOS | License |
|---|---|---|---|---|
| VMware Workstation | HW | W32, L86 | x86系OS | 有償 |
| VMware Fusion | HW | MXi | x86系OS | 有償 |
| VMware Player | HW | W32, L86 | x86系OS | 無償 |
| VMware Server | HW | W32, L86 | x86系OS | 無償 |
| Virtual PC | HW | W32 | W32(x86系OS) | 無償 |
| Virtual Server | HW | W32 | W32(x86系OS) | 無償 |
| Parallels Workstation | HW | W32, L86 | x86系OS | 有償 |
| Parallels Desktop | HW | MXi | x86系OS | 有償 |
| VirtualBox | HW | W32, L86, MXi | x86系OS | 無償/GPL |
| Virtual PC for Mac | CPU | Mp | x86系OS | 有償 |
| Bochs | CPU | W32, L | x86系OS | LGPL |
| QEMU (system) | CPU | W32, L, B, Mac | x86系OS | GPL |
| VMware ESX Server | HV | 不要 | x86系OS | 有償 |
| VMware ESXi Server | HV | 不要 | x86系OS | 無償 |
| Microsoft Hyper-V | HV | 不要 | x86系OS | 無償 |
| Xen | HV | 不要 | x86系OS | GPL |
| coLinux | OS | W32, L | Linux | |
| User Mode Linux | OS | L | Linux | |
| Wine | API | L, B | N/A | |
| QEMU (user) | API | L | N/A | GPL |
- 方式 - エミュレータの方式
- HW - 仮想PC環境を作成。部分的にホストのハードウエア機能を利用する。
- CPU - 仮想PC環境を作成。CPUの演算からすべてエミュレートする。
- HV - 仮想PC環境を作成。ネイティブハイパーバイザ形式。
- OS - ゲストOSのカーネルに修正を加えて仮想環境を作成する。
- API - アプリケーションからのAPI,CPUへの命令をエミュレートする。
- ホストOS
- W32 - Windows 2000,XP 32bit
- L - Linux
- L86 - Linux (x86 CPU)
- B - *BSD
- Mac - Mac OS
- Mp - Mac OS (PowerPC)
- MXi - Mac OSX (Intel)
- ゲストOS
- CPU-VT - CPUの仮想化機能
- Intel VT や AMD-V に対応したプロセッサに対応しているか
エミュレータの方式
仮想PC方式
仮想PC方式は、ホストOS(エミュレータを実行するOS)上に仮想のPC環境を作り出し、そこでゲストOS(エミュレータ環境内で実行するOS)を実行する方式。
この方式では、PCのハードウェアを含めてすべてエミュレーションを行い、ゲストOSはあたかも1台の独立したPC上で動いているのと同じように動作する。仮想PC上には、ゲストOSのカーネルや仮想ディスクを持ち、ホストOSとはネットワーク的にも切り離された別ホストになる。
実際のPCそっくりの環境でゲストOSを実行するため、エミュレーションの忠実度は高い。しかし、エミュレーションのためにゲストOSをまるごと起動しなければならない。
修正カーネル方式
修正カーネル方式に分類できる coLinux や UML(User Mode Linux) は、何らかの手を加えたLinuxカーネルをゲストOSとして使い、ホストOS上で実行させる(COLinux の場合は、ホストOS側も特殊なドライバが使用される)。この方式では、仮想PC方式と同様に、ゲストOSが仮想ディスクを持ちネットワークも別となる。しかし、仮想PCに相当する階層はなく、ゲストOSはより緊密にホストOS上で動作する。
coLinux の対応ホストOSは、Windows と Linux で、Windows 対応がメインである。対し、UML はホストOSおよびゲストOSとも Linuxのみ。なお、対応ゲストOSは、カーネルに専用パッチを適用しなければならないため Linux に限られる。
アプリケーション直接方式
アプリケーション直接方式は、仮想PCを使わないだけでなく、ゲストOSのカーネルも使用せずに、ゲストOSのアプリケーションを直接ホストOS上で実行する。Wine や QEMU(user mode) がこの方式に相当する。
Wine の場合、WindowsアプリケーションのAPI(ApplicationProgramInterface)を、XウインドウシステムのAPIなどに変換して実行します。QEMU(user mode)は、同じ Linux どうしで、異なるCPU用の Linuxバイナリを、システムコールを変換しながら実行する。x86 以外のCPU上でWindowsアプリケーションを動作させたいという場合に、Wine と QEMU(user mode) を組み合わせて利用するなどの例がある。
この方式では、ゲストOSのカーネルや仮想ディスクがないため、ゲストOSのアプリケーションとホストOSのアプリケーションを、同じホストOS上に同列に混在させて実行できる。ゲストOSとホストOSは、ネットワーク的にも同一ホストになる。
VM作成メモ
VMware で Linux を動かした際の時刻のずれ
VMware で Linux (kernel 2.6) を動かすと次第にシステムクロックが実際の時間よりずれてくる。ntp を使っていても補正が間に合わないくらいに。
原因
- Clock in a Linux Guest Runs More Slowly or Quickly Than Real Time (VMware Knowledge Base)
- VMware で Linux を動かした際の時刻のずれを解消する(続き)(WebOS Goodies)
で要は、Linux はタイマー割り込みに基づくソフトウェア・カウンタで時計を管理している。このタイマー割り込みの間隔が、1000 Hz に設定されている。エミュレータはこの頻度の割り込みは処理し切れない。実機でも取りこぼしはあるが、それを補正する機能がある。ただ、これはたまに不正な補正を行ってしまう。エミュレータ環境では、これが多発する。よって、APM が有効だと「割り込みの取りこぼし」で時刻が遅れ、APM が無効だと「不正な補正」で時刻が進むことになる。
対策
- カーネルの起動オプションとして "clock=pit" を指定する。(時刻が進む場合の対策)
- カーネルの起動オプションとして "nosmp noapic nolapic" を指定する。(時刻が遅れる場合の対策)
- タイマー割り込みの間隔が "/usr/src/linux-2.6/include/asm-i386/param.h" 内の "HZ" マクロで定義されているので、"100" に変更してコンパイルする。
主な対策としては、上の3つ。CPUが1つの場合は、(1)と(2)でよいが、複数の場合は、(1)と(3)を適用する。
カーネルオプションの設定
ブートローダーの設定ファイルを編集して、カーネルオプションを指定する。対策の(1)と(2)を実施する。
GRUB の設定ファイル "/boot/grub/grub.conf" を開き、以下のように kernel の行に "clock=pit" と "nosmp noapic nolapic" を追加する。
title Fedora Core (2.6.9-1.667) root (hd0,0) kernel /vmlinuz-2.6.9-1.667 ro root=/dev/hda2 clock=pit nosmp noapic nolapic
編集し終わったらリブートする。
VMwareTools の時刻同期を有効に
VMware Tools をインストールした後で、.vmx ファイルに以下の設定を追加する。
tools.syncTime = "TRUE"
VMインストールメモ
Linux に VMware Server をインストール
Linux をホストOSにして、VMware Server をインストールする手順。
- VMware Server を Linux にインストールしてみた。(trial and error)
- Linux で VMware Server 2 を使ってみた。(trial and error)
Linux kernel 2.6 系で VMware のインストール
kernel-2.6.xx の環境で VMware をインストール(コンパイル)するとお互いのバージョンによってはエラーになるらしい。
- VMware の HostOS を kernel-2.6.20-1.2933.fc6 にすると動かない (憩いの場)
- kernel-2.6.23-rc8 & VMware server 1.0.4 (build-56528) (ぴょぴょぴょ?)
- kernel 2.6.23とVMware Server (野人観察日誌)
VirtualBox 2.2.0 ブリッジ接続ネットワークアダプタ
VirtualBox 2.2.0 でホスト内接続ネットワークアダプタが追加されたが、ブリッジ接続ができない。インストーラをもう一度起動して修復すれば直るようです。(2.1.4 からアップデートすると失敗するみたい/2.2.2で直ってる?)
VMイメージ
IE互換検証用VHD
Microsoft が、Webページの互換性チェックサービス modern.IE でローカルでの Internet Explorer 検証用に無償提供する仮想マシンイメージ。用意される組み合わせは、IE6(XP), IE7(Vista), IE8(XP,Win7), IE9(Win7), IE10(Win7,Win8) となる(2013-04-04時点) IE8, IE9, IE10, IE11 on Win7、IE11 on Win8.1、Edge on Win10 (2017-05-07 時点)。
タイムリミットが設けられており、最初に使い始めてからトータルで90日間利用出来る(30日ごとに認証を要求される。コマンドラインで“slmgr –rearm”を実行し執行猶予を伸ばす必要がある)。IE6(XP) については、modern.IE にアップロードされてから90日で期限切れとなる(期限が切れる頃に更新される)。
イメージは、Download Center の Internet Explorer Application Compatibility VPC Image からダウンロードする。
- Free Virtual Machines from IE8 to MS Edge - Microsoft Edge Development
Microsoft Windows 7 90-Day Eval VHD
機能制限なしで90日間試せる“Windows 7”仮想ディスクイメージ
イメージは、Download Center の Microsoft Windows 7 90-Day Eval VHD (認証が必要) からダウンロードする。
Windows Server 2012 Standard x64 Core EVAL
機能制限なしで180日間試せる“Windows Server 2012”仮想ディスクイメージ
イメージは、Download Center の Windows Server 2012 Standard x64 Core EVAL からダウンロードする。
Windows 10 development environment
Windows 10 に Visual Studio 2017 や SDK などがインストールされた、Universal Windows Platform アプリケーションの開発環境。
https://developer.microsoft.com/en-us/windows/downloads/virtual-machines
最終更新時間:2017年05月07日 19時05分01秒 指摘や意見などあればSandBoxのBBSへ。