仮想型端末サービス

仮想型端末サービスとは、仮想的に動作しているPCの画面を別のPCに表示してそちらから操作するサービスです。ほとんどの場合、PC仮想的な動作はネットワーク上の別の場所で行われます。この授業の場合には、メディアセンタの実機のPCとほぼ同じ環境のWindowsと、実機では利用できないubuntuをこのサービスで利用することができます。実際の利用方法は上のリンクをご覧ください。ただしこの授業の場合、基本的には科目自習を予約して利用することを想定しています。メディアセンタの場合、このサービスを利用すると以下の利点があります。

  1. Windows以外のOSを利用できる。

  2. BYODPCからネットワークを介してメディアセンタの環境を利用できる。

  3. 授業時間内外に関わらず自宅や下宿等からネットワークを介せばメディアセンタの環境を利用して自習できる。

仮想型、という言葉を理解するために関連する概念を以下に説明しておきます。それらを前提とすると、仮想型端末サービスというのは、仮想マシンの画面・キーボード・マウス(いずれも仮想)をネットワークを介して別のPCから参照・操作するサービスです。

エミュレーション(emulation)

あるCPUやハードウェア用に開発されたプログラムを、別のCPUやハードウェアで動作させること。両者のCPUの命令セットが異なる場合、プログラムは書き換えずに仮想的にプログラムを実行することで実現する。仮想的というのは、実際にそのプログラムを実行する物理的なCPUが存在するわけではなく、(入出力を含めて)論理的に同等の演算・動作を行うのみであるためそのように言う。ただし実行速度は(同クロックの)物理CPUでの直接実行よりもかなり遅くなる。

現在の計算機のうちvon Neumannマシンはほとんどは万能Turing機械を雛形としている。万能Turing機械は他のどのようなTuring機械も模倣(エミュレート)できる。これはTuring1936-1937年頃考えついたものである。

身近なところでは、(古い)ゲーム機やPC、電卓のゲームやプログラムを実行するために様々なエミュレータ(エミュレーションを行うプログラム)が開発され、(その時点で動作している)計算機上で使用されている。エミュレーションによる実行速度の低下はムーアの法則等によるCPUの性能改善により補われるどころか、同等以上に速度向上する場合も多い。エミュレータはきちんと作られていれば何重にも動作させても問題ない。

シミュレーション(simulation)

あるシステムの動作を、それとある意味で同じ動作をする他のシステムで仮想的に真似させること。エミュレーションと異なり論理的に同等であるとは限らない。またエミュレーションの場合には対象計算機の動作を計算機で模倣させる場合が殆どだが、シミュレーションの場合には人間が頭の中で行う場合もあるし、対象システムは自然の一部だったり社会の一部だったりする。この場合仮想的というのは、やはり実際に元の現象を起こしているわけではなく、それとある意味で類似の現象を起こしたりシステムを動作させたりするだけだからである。

仮想マシン(virtual machine)

計算機の文脈では、物理的に存在しないが論理的には動作する計算機のこと。古くは1970年代のIBMの大型機でも利用されていた。反対語は物理マシン。全ての部分のエミュレーションにより仮想マシンの実行を行うこともできるが、効率の問題からCPUの命令セットについては物理CPUでほぼ直接実行できるし、メモリとCPU間のデータ転送も実際の転送時には実機とほぼ同等の効率で行われるような、仮想マシン用に設計されたハードウェア(intel VT-xを備えたCPU)を用意して実現する場合が多い。ただしその場合でも他の大部分についてはエミュレーションを行う。また画面やネットワーク・インタフェース、外部記憶装置等は物理的に存在しない場合が多い。CPUやメモリ、仮想マシンの数も実際の物理的な数や量とは異なる数を利用することができる。

最近のPCは仮想マシン用のハードウェアを備えたものが多く、それを用いて効率的に仮想マシンを動作させるソフトウェアもフリーのものを含めて利用可能になっている。例えばWindows Virtual PCVMwareVirtualBoxXenKVM等がある(利用できるOSはそれぞれ参照すること)。これらを利用すると、例えばubuntuともう一つのWindows2つの仮想マシンで動作させ、それらを仮想ネットワークで接続し、クライアントサーバモデルの動作実験を行う、といったことが1台のWindowsノートPCで可能になる。

ネットワークを介して他のPCを遠隔操作できるようにすると、そのPCの能力・機能・環境・データ・プログラムを様々な場所から利用でき、利便性・セキュリティが高くなる場合がある。この場合、遠隔操作のみで利用するPCは物理的に存在する必要はなく、論理的に同様に動作すれば十分である。それらを仮想マシンとして動作させることで、設置場所の節約、不必要なハードウェアの削減、使用電力の削減、柔軟な計算資源の割り当て、管理費用の節約が可能になる。