仮想という考え方

総合科目「ネットワーク社会を支える情報技術入門 II」、2018年11月26日

                                       筑波大学システム情報系
                                       新城 靖
                                       <yas @ cs.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2018-11-26
あるいは、次のページから手繰っていくこともできます。
http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/
http://www.cs.tsukuba.ac.jp/~yas/

印刷配布資料 http://www.softlab.cs.tsukuba.ac.jp/~yas/gen/it-2018-11-26 /it-2018-11-26 .pdf

■今日の重要な話

■仮想とは

◆コンピュータ由来の「仮想」の意味

英語では、virtual。

類語:抽象(abstract)、論理(logical) (←→物理(physical))

反語:実(real)

◆英語のvirtualの説明

virtual (adjective)
almost or nearly as described, but not completely or according to strict definition : the virtual absence of border controls.
Thesaurus (類語)
  1. a virtual guarantee effective, in effect, near, near enough, essential, practical, to all intents and purposes.
  2. a virtual shopping environment simulated, artificial, imitation, make-believe; computer-generated, online, virtual reality.

MacOSX付属 New Oxford American Dictionary, New Oxford Writers Thesaurus より。

◆英和辞典

virtual (形容詞)
《表面的にはまたは名目上はそうでないが》事実上の, 実質上の, 実際(上)の; 仮想の, バーチャルな;
リーダーズ英和辞典第2版より。

◆日本語の辞書に現れる「仮想」

この講義で中心的に扱う「仮想の考え方」とは、適合しない。 virtual の訳語に「仮想」を当てたのは、失敗だった。 「事実上の」と訳せば良かった。

仮想 (広辞苑)
仮に考えること。仮に想定すること。例:仮想敵国。
仮想敵国の英語は、{hypothetical、imagined、potential} enemy。virtual enemy とは言わない。

■仮想記憶(virtual storage,仮想メモリ,virtual memory)

コンピュータのメモリをうまくつかうための仕組み。

◆(物理的な)メモリ

コンピュータには、2種類の記憶のためのハードウェア部品が含まれている。
メモリ(メインメモリ)、RAM(Random Access Memory)
実行中のプログラムを保持する。加工するデータを一時的に保持する。 IC(Integrated Circuit、シリコンという元素による半導 体で作られた電気回路)で作られているので、速い。 容量は、ハードディスクよりは小さい。値段が高い。 (揮発的(電源を切ると消えてしまう)。)
ハード・ディスク (HD(Hard Disk), HDD(Hard Disk Drive))
プログラムやデータをデータを保持する。 容量は、メモリより大きい。値段が安い。 (永続的である(電源を切っても残っている)。)

メモリには、数字で番地(アドレス)が付いている。番地を指定して、データ を保存する。番地を指定すると、データが取り出せる。

◆仮想記憶(仮想メモリ)

仮想記憶(仮想メモリ、virtual memory)とは、オペレーティングシステム(後述)の働きにより、実際に備えているメ モリ容量よりも大きなプログラムを動かすための仕組みである。

主記憶、6ページ、ハードディスク、15ページ、ページイン、ページアウト

図 仮想記憶による主記憶容量の拡大。主記憶よりも、「事実上」多くのメモリがあるように見せかける。

主記憶 (main memory, primary storage)
RAM で作る。小容量、高価。
二次記憶(secondary storage)
ハードディスクで作る。大容量、安価。
ページ
主記憶と二次記憶(ハードディスク)を固定長のブロックに分けたもの。 大きさは、4Kバイト-8Kバイトが一般的。
ページアウト
主記憶にある(当分使いそうにない)ページを、二次記憶へコピーする。
ページイン
二次記憶にある(現在必要とされている)ページを、主記憶へコピーする。

仮想記憶の基本的なアイディアは、高価な RAM の容量を、 安価なハードディスクを使って、「事実上」拡大する。 すぐに使うところだけを速いメモリ(IC)に、当分使わない所を、遅いハー ドディスクに置き、ディスクとメモリの内容を入れ替えながら仕事を進める。 この時、速いメモリを主記憶、遅いハードディスクを二次記憶とう。

仮想記憶を使うと、メモリが 1000 M バイトしかないコンピュータで、2000 M バイトのメモリを使うプログラムを実行することができるようになる。

もともとは、1つのプログラムで実際のメモリ容量以上のものを使うための仕 組みである。最近では、複数のプログラムが使うメモリの総量で考えることも ある。

■仮想計算機(virtual machine)

あるいは、仮想マシン、仮想コンピュータ。 計算機(専門用語)とは、コンピュータのこと。電卓ではない。

◆コンピュータの構成

ハードウェア、OS、アプリケーション2個

図 単純化したコンピュータの構成

◆仮想計算機

仮想計算機とは、仮想計算機モニタと呼ばれるソフトウェアの働きにより作り 出された、事実上のハードウェア。オペレーティング・システムから見ると、 実際のハードウェアとは区別がつかない。

仮想計算機、OS、アプリケーション2個

図 仮想計算機上でのオペレーティング・システムの実行

仮想計算機は、仮想計算機モニタ(virtual machine monitor, VMM) という小さ なソフトウェアにより実現される。 仮想計算機モニタは、ハイパーバイザ(hypervisor)と呼ばれることもある。

仮想計算機モニタは1個でも、複数の仮想計算機を作ることができる。

◆仮想計算機の利用方法

◆コンピュータの集約

目的

図? サーバ3台、OS3種類、アプリケーションそれぞれ2つ

図? 仮想計算機によるサーバの集約(集約前)

図? ハードウェア1台、OS3種類、アプリケーションそれぞれ2つ

図? 仮想計算機によるサーバの集約(集約後)

◆ハイパーバイザ型とホスト型

仮想計算機モニタの分類
ハイパーバイザ型
実計算機上で仮想計算機モニタが動作する。
ホスト型
実計算機上では普通のオペレーティング・システムが動作する。 仮想計算機モニタは、そのオペレーティング・システムの1つの アプリケーションとして動作する。

図? ホスト型仮想計算機モニタ

図? ホスト型仮想計算機モニタ

◆仮想計算機モニタの実例紹介

VMware Fusionは、MacOSX 上で動くホスト型の仮想計算機モニタ製品。 デモでは、次の OS を実行する。

◆セキュアVM/BitVisor

日本政府が決定した「セキュア・ジャパン2006」の項目の1つ。内閣官房情報 セキュリティセンターが推進する。文部科学省2006度科学技術振興調整費 「高セキュリティ機能を実現する次世代OS環境の開発」による支援を受ける。 筑波大学がとりまとめ。電気通信大学、東京工業大学、慶應義塾大学、奈良先 端科学技術大学院大学、豊田高専、富士通、NEC、日立製作所、NTT、N TTデータ、ソフトイーサの技術者が参加。インテルが技術協力。 2009年3月開発プロジェクト終了。

目標: オペレーティング・システムやアプリケーションに依存しない形でセキュ リティ機能を付加する。

既存のオペレーティング・システム(Windows, Linux 等)を変更しないで実行す る。このために、仮想計算機(モニタ)で、セキュリティ機能を追加する。

図? PC、ICカード、画面に PIN

図? BitVisor の機能

図? PC、ICカード、画面に PIN

図? BitVisor の起動画面

http://www.bitvisor.org/

◆仮想計算機モニタによるハードディスクの内容の配信

vThrii(ブイスリー) は、大学の教室等にある多数の PC にハードディスクの内 容を配信する仮想計算機モニタの一種。BitVisor の技術が使われている。 2017年4月から、 筑波大学 全学計算機の実習室にある PC で使われている。

図? 1台のPCのハードディスクの内容を多数のPCに配信する

図? ハードディスクの内容の配信

問題: 大学の教室等にある多数の PC のハードディスクに、新しいソフトウェ アを1度の操作でインストールして設定したい。

従来の方法1: 1 台の PC のハードディスクの内容を、サーバにコピーし、サー バから、全PCにコピーする。

問題点

従来の方法2: ネットワーク・ブートする。ハードディスクの内容を、コピーしないで、 使う時に、使う分だけ、取り寄せる。コピーは、不用。

問題点

仮想計算機モニタ(vThrii)の方法:

図? 仮想計算機モニタ、1台のPCのディスクの内容を多数のPCにコピーする

図? 仮想計算機モニタによるハードディスクの内容の配信

参考

◆Java仮想計算機

Java 言語で書かれたプログラム(バイトコードと呼ばれる機械語の一種に変換 されたもの)を実行する。

Java仮想計算機を使うと、さまざまな種類ハードウェア(CPU)やオペレーティ ング・システムで共通にバイトコードという機械語が使えるようになる。 バイト・コードに変換されたアプリケーションは、どの CPUやオペレーティング・システムでも動作する。

図? Pengium,Linux,PowrPC,MacOSX,Pentium,Windows,SPARC,Solaris

図? 共通のバイトコードが使える

■仮想専用線

◆専用線(Private Network)

(仮想がつかない)専用線サービスとは、NTT 等の通信事業者から自分専用の通 信回線を借りること。料金は、通信帯域と距離で決まる。(普通の電話の料金 は、時間できまる。)他の人が入り込むことはないので、安全である(通信を 傍受するには、電話並に難しい。)

図? PC、ルータ、専用線、電話局、専用線、ルータ、PC

図? 専用線

専用線サービスは、非常に高価。例。

◆VPN(Virtual Private Network)

本当は、インターネットという、誰もがアクセスできるネットワークを通って いるが、あたかも 専用線(private network) で結ばれているように見せかけ る。

図? PC、ルータ、VPN、インターネット、VPN、ルータ、PC

図? VPN

VPNを実現する技術:

筑波大学では、学外から学内(IPアドレスで制限)のサービスを利用するために使える。

◆VPN と無線LAN

無線LAN を使う時、電波で発せられたデータは、周りの PC で受信可能である。 無線LAN 部分の暗号化の有無に注意する。 暗号化なし(パスワードなし)のものは、電波が届く範囲で通信内容を傍受され る。

図? PC、傍受、無線LAN基地局、インターネット、Webサーバ

図? 無線LANの通信傍受

無線LANの通信内容の傍受を防ぐには、VPN を使って暗号化すると良い。傍受し ている人は、暗号化されたデータと、VPN の接続先を知ることができる。暗号 化前のデータを入手することは難しい。

図? PC、VPN、無線LAN基地局、インターネット、Webサーバ

図? 無線LANの通信傍受

注意1: VPNの接続先を隠すことはできない。

注意2: VPN の接続先で、暗号化された通信内容は、復号される(元にもどされ る)。VPN の接続先と、本来の接続先の間の通信にも気を使う必要がある。

◆無線LAN利用時のHTTPSとDNS

Web ページの URL で、http: で始まるものは、通信路が暗号化されていない。 https: で始まるものは、通信路が暗号化されている。https: の通信は、暗号 化されていない無線 LAN であったとしても、通信内容の傍受は難しい。

しかし、https: の通信の前に、 DNS のアクセスがなされる。DNS のアクセスは、暗号化されていない。無線 LAN が 暗号化されていなければ、アクセスしたサーバの名前が傍受される。

VPN を使えば、(設定により) DNS の部分も暗号化できる。

■その他の仮想技術

◆仮想ディスク(virtual disk)

1つの大きなファイルを、1つのハードディスクと同じように扱えるようにし たもの。仮想ディスクを使うと、次のようなことができる。

◆仮想ホスト(virtual host)

ネットワークに接続されたコンピュータをホストという。ホストは、サービス を提供するプログラム(サーバ)を動作とせるという意味もある。

仮想ホストは、本来なら複数のコンピュータが必要であったものを、1台に集 約する。ただし、ネットワークを超えて向こう側で見た時には、1台に集約さ れていることには気がつかせない。

仮想ホストの実現方法

◆仮想現実感(virtual reality、VR)

高度なコンピュータ・グラフィックスやサウンドの技術を使って、実在しない ものを(コンピュータの中に)実在しているかのごとく見せかける。

VR は、単なる CG (Computer Graphics) と違い、人間が働き掛けると、現実と 同じように応答する。感覚のフィードバックがある。

◆世俗的な「仮想」

最近の日本語では、コンピュータによる原義を離れて、「現実には存在しない」 という意味が使われることがある。 以前は、空間(と時間)の制約で実現できなかったことが、コンピュータとネッ トワークの発達により、現実に近いレベルにまで達してきた(部分的に現実の ものと置き換え可能になってきた)という意味も生じてきている。

■仮想通貨

仮想通貨とは、コンピュータとインターネットの技術を用いて作られた、「普 通の通貨と置き換え可能なもの」、という単純な定義は できない

◆仮想通貨の種類

◆通貨とは

通貨とは何か、という定義が難しい。

◆ヴィクセルの三角形

A,B,Cが欲しい、循環している。

図 ヴィクセルの三角形

◆通信による交換の成立

  1. A さんが、B さんに電話をして、「自分が持っている商品 a と B さんが 持っている商品 b を交換しよう」と提案する。
  2. B さんは、A さんへの解答を保留する。 B さんは、電話を受けて、知識が増える。
  3. B さんは、次のことを検討する。
  4. B さんは、C さんに電話をして、「(商品 a または商品 b )と商品 c を 交換しよう」と提案する。
  5. C さんは、「自分の持っている商品 c と商品 a を交換しても良い」 と解答する。
  6. B さんは、2. で保留していた解答を行う。A さんに交換に応じると言う。
  7. B さんは、A さんから a を受け取り、C さんに a を渡す。
  8. B さんは、C さんから c を受け取り、C さんに c を渡す。
  9. B さんは、A さんから a を受け取る。
最終的に、A さんも B さんも C さんも、自分が欲しかったものが手に入る。

物々交換にA,B,Cが欲しいものを手に入れる。

図 物々交換により欲しい物を手に入れる。

◆通貨の成立

通貨によりA,B,Cが欲しいものを手に入れる。

図 通貨により欲しい物を手に入れる。

3 人だけでなく、N 人でも同様。 物々交換の世界から、創発的に通貨が発生する。

参考文献

◆通貨の種類

英語圏では、virtual currency より、"crypto currency" (暗号通貨) という 言い方が好まれる。英語の virtual は、 「事実上の」 という意味が強いので。

◆Bitcoin型の仮想通貨の仕組み

次のような、コインの送付を「台帳」に記録する。

A,B,C,D間のコインの送受信

図 A,B,C,D間のコインの送受信

B さんは、受け取った以上の送金をしてはいけない(Y+Z <= X)。 B さんが、そういうことをしていないことは、「台帳」を調べればわかる。

「台帳」の管理は、中央のサーバではなく、インターネット上のたくさんのコ ンピュータ衆人環視の状態で行われている。このコンピュータのことを台帳の 管理のことを「マイニング(採掘)」という。(金の採掘と対比しない方が、 本質を理解できる。)

台帳の管理手法として「ブロックチェーン」という手法が使われている。

図 Bitcoinのブロックチェーン

図 Bitcoinのブロックチェーン

台帳の管理には、電気代がかかる。みんなのために、台帳を管理すると、コイ ンがもらえる。(送り手が管理者にコインで手数料を支払うこともできる。)

よくある間違い。

■オペレーティング・システム

◆オペレーティング・システム(Operating System,OS)とは

BIOSがブートローダをメモリに読み込み、ブートローダを実行する。

ブートローダがOSをメモリに読み込み、OSを実行する。

BIOS(Basic Input Output System)、ROM Monitor。OSをハードディスクから メモリにコピーして、OSに制御を渡すプログラム。ROM (Read-Only Memory) という、少容量の不揮発的なメモリに入っている。古いシステムでは、(フロッ ピ・ディスクへの)基本的な入出力の機能が含まれていた。

◆歴史

「パーソナル・コンピュータ」の考え方は、比較的新しい。昔は、コンピュー タが高価だったので、1台のコンピュータを複数人(時には数百人)で同時に 使うことが一般的だった。

TSS (Time Sharing System)では、1台のコンピュータを大勢の人で同時に使 う、一人ひとりは、自分で占有しているかのように見える。 仮想記憶や仮想計算機が作られたのは、この時代。

◆プロセス

プログラムとプロセス。

プロセスとは、オペレーティング・システムの働きにより、二次記憶に保存さ れていたプログラムがメモリ(主記憶)に読み込まれ、実行可能になったもの。

単にファイル(ハードディスク)に入っていも、プログラムはプログラムであ る。 1つのプログラムを同時に2個動かすことを考えると、プログラムとプロセス の違いがわかる。

メモリ、CPU、I/O、単一プログラム、複数プログラム/プロセス

図? オペレーティング・システムの構成要素

1つのプロセスから見ると、普段は自分一人で全部のコンピュータのハードウェ アを利用しているように見える。コンピュータの仮想化の最初。

プロセスは、時々、他のプロセスからデータを受け取る(プロセス間通信)。


Last updated: 2018/11/26 10:14:59
Yasushi Shinjo / <yas @ cs.tsukuba.ac.jp>