仮想政府があるといいな (2)
仮想環境
前回はこちら
仮想環境とは、ある環境(OS)があったら、その上に別の環境(OS)を「インストール」して、まるで一つのアプリのように動かすことのできる「アプリ」だ。
よくわからない人は、たとえば「NintendoSwitch」という環境で動く「ファミコンエミュレータ」の関係を思い浮かべてもいいし、Androidのスマホ上にiOSをアプリとしてインストールするような状況を想像してもいい。そして「Switchの上で動くファミコン」に「(仮想化された)ゲームカセット」を差し込めるのと同様、仮想環境には「仮想化されたアプリ」をインストールできる。
そんな感じで、Windowsの上にLinuxを入れるとか、Mac上にWindowsを入れるとか、そのWindowsの上にさらにLinuxを入れるとか、Linuxの上にLinuxを何個も作り、お互いでLANを作って実験するとか、開発者は色々やってきた。
仮想環境は、あるOS(たとえばMac)の上で別のOS(たとえばWindows)をシミュレーションするようなものなので、当然、元の環境(実環境)より遅くなるし、なんだか無意味なだけの気もする。
とはいえ、仮想環境には、「まだ何も入っていないクリーンなOS」とか「必要な開発ツールだけ既に入れてあるOS」とかを簡単に作ったり捨てたりできるという大きなメリットがある。
前述したことから分かるように、「クリーンな環境」では「書いてある通りにやれば開発ツールがそのまま入る(たぶん)」という巨大なメリットがあるのだ。
その結果、最近では、ある開発用ツールを配る時、それがうまく動くことが分かっている仮想環境のレシピ(Dockerイメージ)もセットで配るなんて事例も増えた。ツール一つを入れるために、それが動く環境をOSをセットでつけている。ファミコンのゲームを動かすために、ファミコン本体をくっつけてるようなもので、入れ物と中身が入れ替わっている不思議な状況だ。
つまり、こんなややこしい仕組みを使ってでも、開発者は、クリーンな(何も過去の歴史が干渉してこない)環境を手に入れたかった。筆者の感覚では、クリーンな環境で問題なくインストールができるのと、悪性の環境エラーに引っかかった時では、最悪百倍近い時間の開きがある。1時間でできるはずのインストールに対し、100時間(五日)かけて正体不明の振る舞いを排除、という感覚となる。
で、唐突だが、タイトルにある政府の話だ。
次回はこちら