気の向くままに辿るIT/ICT/IoT
システム開発

VM / Virtual Machine / 仮想機械 / 仮想マシン

ホーム前へ次へ
Virtual Machineとは?

VM / Virtual Machine / 仮想機械 / 仮想マシン

VM / Virtual Machine / 仮想機械 / 仮想マシンとは

 VM / Virtual Machine(仮想機械・仮想マシン)とは、バージョン違いや異なる(CPUを持つ)OSを走らせたり、プログラミング言語Javaのように中間コードを処理するVMを異なる各種OSのラッパとして互換性を持たせるなど物理的なハードウェアが存在するかのように振る舞うことが可能な仮想化技術、ソフトウェア、フレームワークの1つです。

 仮想化することは「真似をする・見習う」という意の英語emulate、emulatorから日本語でもそのまま「エミュレート」、実現するソフトウェアなどは「エミュレータ」と呼ばれることがあります。

  1. 仮想マシンのメリット
  2. 仮想マシンのデメリット
  3. JVMと仮想マシンで動くOS
  4. Linuxの需要の高まり
  5. 仮想マシンで動くOS
  6. 仮想マシンでOSを走らせるには
  7. PC・仮想マシン・OSの必要スペック
  8. その他参考情報

仮想マシンのメリット

 仮想マシンを使うと1台のPC(1つのOS)上で1つ以上の他のOS、つまり、Windows上でMacやUNIX/Linux、Mac上でWindowsやUNIX/Linux、UNIX/Linux上でMacやWindowsを実行することもできますし、同じOSの異なるバージョンを実行することもできます。

 もちろん仮想マシン上で実行されるOSにそのOS専用アプリケーションをインストールして実行することができますから、異なるOSや異なるバージョンのOS、そこで動作するアプリケーションの検証や比較を1台のPCでできてしまうということです。

 仮想マシンは、仮想化ソフトウェアによって作成できますが、この仮想化ソフトウェアには、目的に応じていろいろあるものの、前述のような機能以上の機能を持つものにはオープンソース(≒無償で利用可能なもの)もあります。

 また、CygwinやMinGW、Wineなどとは異なり、ネイティブなOSそのものを実行することができますからファイルもネイティブな環境でも利用することができます。

 他にもメリットは多々あり、これらは、ほんの一部でしかありません。

仮想マシンのデメリット

 デメリットというより、必要条件ですが、仮想マシンは、物理的なPCのCPUやメモリを共有、つまり、消費することからCPUはシングルコアならかなり高速なもの、できればデュアルコア以上のマルチコア、メモリは、32ビットのLinux/BSD/PC-UNIX/VistaまでのWindowsなら1GB以上、Windows 7なら2GB以上、64ビットなら前者は2GB以上、後者は4GB以上は必要、Mac OS Xでは8GB以上は欲しいところ。。。などそれ相応のスペック(仕様)が求められます。

 また、仮想化ソフトウェア自体の容量に加え、OSも超軽量なら100MB未満のものもありますが、CDに収まるものでも700MB前後、DVDなら4GB内外、場合によっては複数枚ということもあり、仮想ハードディスクにインストールすれば相応の容量になりますし、元データをISOイメージファイルとして取得、または、作成する場合、単純に倍の容量を要することから複数のOSを入れるなら尚の事、ハードディスク容量もそれ相応の空き容量が必要となります。

JVMと仮想マシンで動くOS

 JavaのVMは、JVMとして実装されていますが、VMはオープンソースとして公開されており、Java以外のプログラミング言語や技術でも利用可能となっています。

 OSを動かすことができるVirtual Machineには、QEMU、KVM/QEMU、Bochs、Virtual PC、Hyper-V、Xen、VMware Player / VMware Server、VirtualBox(VirtualBox -> Sun VirtualBox -> Oracle VM VirtualBox)などがあり、実機PCのOSをホストOS、仮想マシンで動作するOSをゲストOSと呼んでいます。

 IntelではVT-x、AMDではAMD-Vという仮想化ソリューションが発表され、CPUやネットワークの仮想化が一般化しつつあります。

 尚、Windows 7の一部のシリーズには、Virtual PC 2007の後継であるWindows VirtualPCが搭載され、その恩恵からCPUやBIOSがIntel VTやAMD-Vに対応していれば(、後の"Windows XP Mode update"により、XPモード(ゲストXP SP3)においてはIntel VT/AMD-V未対応でも)XP Modeを利用できる場合があり、Windows 8の一部のシリーズには、サーバ用途のWindows 2008に搭載されていたものの後継でもあるHyper-Vが搭載されています。

仮想化技術の歴史はコンピュータの歴史

 ただ、コンピュータの世界においては、その原点・考え方が後世チューリングマシンと呼ばれる仮想機械に由来することもあり、不連続のメモリを連続したメモリ領域に見せかける仮想記憶、並行処理を可能とするマルチタスクや時分割による共有タイムシェアリングを含め、仮想化技術自体は、数十年前の昔からあり、驚くことに既に異なるOS上で複数のOSを仮想OSとして走らせることも既に可能となっていました。

 1964年、IBMのSystem/360には、それまで業務アプリケーションごとに必要となった複数サーバ集約の為に仮想マシンの技術が採用され、汎用OSの誕生という飛躍的な進歩を遂げ、更に1988年にLPAR/Logical PARtitioning・Logical PARtition(論理分割・論理区画)が考案されます。

 この1960年代の仮想化技術と1980年代のLPARとが相まって物理的な1台のマシン上で複数の(仮想マシンを介した)OSを稼動させることも可能となったことで論理的な仮想環境の実現が可能となったと言えるでしょう。

 1991年に登場したJavaもまた、仮想技術によりJVMを通して、より広くVirtual Machineという概念や技術を周知することとなり、同年Linuxカーネルの発表と共にUNIXライクなオープンソースのOSとして地道に発展してきたLinux OSが近年、それまでになく注目されることになったこともVirtual Machineの存在を浮き彫りにしたと言ってよいでしょう。

 フロッピーディスクドライブやCD/DVDドライブがないPCも増えていますが、仮想FDドライブや仮想CD/DVDドライブというものもあります。

 他方、1999年メインフレーム(汎用機)で複数台の仮想マシンによるLinux稼働を可能とするメインフレームLinuxが誕生するに至っていますし、仮想化によるレンタルサーバC/Sシステムでもサーバ仮想化、クライアント仮想化、アプリケーション仮想化、ネットワーク仮想化、ストレージ仮想化など仮想化技術が導入されています。

サーバ資源の集約によるコスト低減と温暖化対策としての省電力化

 今ここにきて古くからあった仮想化技術の需要が再燃している要因としては、以下のようなことが考えられるでしょう。

 こうしたことからIT/ICTシステム導入の一般企業におけるサーバの仮想化、IT/ICT企業におけるシステム開発環境の仮想化。。。にもつながってきています。

Linuxの需要の高まり

 また、今までも言い古されてきたことですが、いよいよここにきてLinuxの存在感は増してきており、仮想化技術の寄与するところも大きいと言えるでしょう。

 というのは、メインフレームや組み込み系、オープン系のサーバ用途といった法人需要は既に言うまでもなく広まっていますが、それとは別に法人、公共施設、個人からの需要が高まるであろうからです。

 ただ、その流れの大きな要因は、景気の長引く停滞期を背景としたLinuxのコストパフォーマンスの高さ(OSが無料など投資費用の安さ)からくるニーズとも言えます。

 特に役所や学校などの公共施設においては経費削減をしても相応の技術を学べる、利用できる環境を維持できるという点で移行が進んでいるようです。

 実体験に勝る学習はないと思われ、誰もが等しく公平に学ぶ機会を持てることは望ましいことでしょう。

 広く普及しているWindows環境でもBSD、PC-UNIXやLinuxを利用できる仮想マシンは、OSの移行準備としても最適と言えるでしょう。

 UNIX/Linuxコマンドやshellに慣れるという意味ではWindows上で使える代替環境としてCygwinなどエミュレータもあり、これも重宝しますが、仮想マシンならすぐにインストールもでき、いろいろなOSをほぼそのOSそのままに試せ、仮想化されたOSはファイルとして保存される為、ファイルをコピーするだけで、他のマシン(の仮想マシン)で利用することも可能です。

>> OS仮想マシン >> 仮想マシンでOSを実行 >> 必要スペック

ホーム前へ次へ