!!!Virtual Machineの種類 {{category "Virtual Machine",nolink}}主な仮想コンピュータ ,名称 ,方式 ,ホスト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|http://kb.vmware.com/]) **http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1420 *VMware で Linux を動かした際の時刻のずれを解消する(続き)([WebOS Goodies|http://webos-goodies.jp/]) **http://blog.livedoor.jp/sourcewalker/archives/50179807.html で要は、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|http://techno-st.net/]) **http://techno-st.net/2007/03/23/vmware-server-linux.html *Linux で VMware Server 2 を使ってみた。([trial and error|http://techno-st.net/]) **http://techno-st.net/2008/10/09/linux-vmware-server-2.html !Linux kernel 2.6 系で VMware のインストール kernel-2.6.xx の環境で VMware をインストール(コンパイル)するとお互いのバージョンによってはエラーになるらしい。 *VMware の HostOS を kernel-2.6.20-1.2933.fc6 にすると動かない ([憩いの場|http://fun.poosan.net/sawa/]) **http://fun.poosan.net/sawa/index.php?UID=1174765949 *kernel-2.6.23-rc8 & VMware server 1.0.4 (build-56528) ([ぴょぴょぴょ?|http://d.hatena.ne.jp/pyopyopyo/]) **http://d.hatena.ne.jp/pyopyopyo/20070926/p1 *kernel 2.6.23とVMware Server ([野人観察日誌|http://blog.yazin.info/]) **http://yazin.seesaa.net/article/63528809.html !!VirtualBox 2.2.0 ブリッジ接続ネットワークアダプタ VirtualBox 2.2.0 でホスト内接続ネットワークアダプタが追加されたが、ブリッジ接続ができない。インストーラをもう一度起動して修復すれば直るようです。(2.1.4 からアップデートすると失敗するみたい/2.2.2で直ってる?) !!!VMイメージ !!IE互換検証用VHD //Microsoft が Internet Explorer でのサイトの検証用に無償提供する Virtual PC 用のディスクイメージ。英語版だがアクティベート済みの WindowsXP SP3 と IE6 や IE7 がインストール済みとなる。ちなみに(おおよそ2ヶ月の)有効期限が設けられている。 Microsoft が、==Webページの互換性チェックサービス [modern.IE|http://www.modern.ie/ja] で==ローカルでの 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|http://www.microsoft.com/downloads/Search.aspx?displaylang=en] の [Internet Explorer Application Compatibility VPC Image|http://www.microsoft.com/downloads/details.aspx?FamilyId=21EABB90-958F-4B64-B5F1-73D0A413C8EF&displaylang=en] からダウンロードする。== //※XP SP3 が IE6, IE7, IE8 Beta2。Vista が IE7。2009年01月 まで (2008/09/16 公開) * Free Virtual Machines from IE8 to MS Edge - Microsoft Edge Development ** https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/ !!==Microsoft Windows 7 90-Day Eval VHD== ==機能制限なしで90日間試せる“Windows 7”仮想ディスクイメージ== ==イメージは、[Download Center|http://www.microsoft.com/downloads/Search.aspx?displaylang=en] の [Microsoft Windows 7 90-Day Eval VHD|http://www.microsoft.com/downloads/details.aspx?FamilyID=606ae07e-b7db-405b-974b-dd61fc41add4&displaylang=en&Hash=2262rtsAUJG0lwHqU3M1vdXp6LUX0taJjhKK9aSBznYeWBKK9mJiFoXzSIf%2bcU14jbTXnhF6STdX9zwDDi8tPw%3d%3d] (認証が必要) からダウンロードする。== !!Windows Server 2012 Standard x64 Core EVAL 機能制限なしで180日間試せる“Windows Server 2012”仮想ディスクイメージ イメージは、[Download Center|http://www.microsoft.com/downloads/Search.aspx?displaylang=en] の [Windows Server 2012 Standard x64 Core EVAL|https://www.microsoft.com/en-us/download/details.aspx?id=36515] からダウンロードする。 !!Windows 10 development environment Windows 10 に Visual Studio 2017 や SDK などがインストールされた、Universal Windows Platform アプリケーションの開発環境。 https://developer.microsoft.com/en-us/windows/downloads/virtual-machines