仮想マシンについて
仮想マシンとはソフトウェアによって作られた、本物のコンピュータように動作する機械です。これを用いることで、本物マシンで動作しているOSの中で見せかけのマシンを作ってその上に別のOSを動作させることができます。実際の利用に即した言い方をすると、Windowsの中でLinuxを動作させたり、Linuxの中でWindowsを起動させたりすることが可能になります。
仮想マシンを作成して、どのように動作させるか設定を行い、起動または停止させたりして管理するソフトウェアをここでは仮想化ソフトウェアと呼ぶことにします。仮想化ソフトウェアはまた仮想マシンが動作するための基盤を提供します。仮想化とは、要求された何かを本物のように見せかけて動作させることです。仮想マシンの場合、特に要求されるのはハードウェアへのアクセスです。例えば、仮想マシン上のOSでファイルを保存するような要求があった場合、本物のSSDやハードディスクといった記憶装置に直接アクセスするのではなく、仮想マシンのために用意された仮想的なハードディスクのイメージにそのファイルを書き込みます。仮想マシン上で動いているOSからは、それが本物の物理的な記憶装置なのか、ハードディスクのイメージなのかは区別しません。
難しそうに思えるかもしれませんが、VirtualBoxという仮想化ソフトウェアの基本的な使い方はとても簡単です。WindowsにVirtualBoxのインストールする手順は別ページに用意しました。
仮想マシンを使うメリット
仮想マシンは様々な目的で使われています。個人利用(home use)での楽しい利用の仕方の一つは、いくつものOS、特にLinuxのディストリビューションを手軽に試してみるといった使い方です。専用のマシンを用意できればそれにこしたことはないですが、なかなかそうもいかないこともあります。そんなとき、仮想マシンを使えば、今すぐ試してみたいという欲求を一時的に満すことができます。
他にも開発段階のサーバーマシンとして利用するという使い方があります。Web開発などで専用のサーバーを用意するよりも、仮想マシンをサーバーとして利用する方が効率的な場合があります。複数のサーバーマシンが必要でそれだけの数の実マシンの用意ができない場合や、実マシンがすでに別のサーバーとして利用されているため、容易に環境設定の変更をすることができず、本番の環境と同じ環境が構築するのが困難であるので、仮想マシンに環境を構築した方が簡単である場合、などです。関連して、VPSと呼ばれる仮想マシンを利用したレンタルサーバーのサービスがあります。
このシリーズで仮想マシンを利用する理由は次の通りです。
- 書き手と読み手で同じ開発環境に揃える。
- FreeBSDのハードディスクイメージが公式に提供されているので、それを利用すればインストールの手間が省ける。
- 実マシンに適当なOSをインストールするように要求するのは、敷居が高い。
- WindowsにVisual Studioをインストールしたり、macOSにXcodeをインストールするのと、さほど難しさに違いはない。
- プログラミング中に必要なシステムに対する変更を、仮想マシン上のOS内に閉じ込めておける。実マシンの環境に影響を及ぼさない。なので、多少リスキーな実験も試してみることができる。
特に最初の開発環境を揃える、というのが今回仮想マシンを利用することにした最大の理由です。
仮想マシンを使うデメリット
仮想マシンを利用するのは良いことばかりではありません。プログラミングを始めるにあたって次のような欠点が考えられます。
- そこそこの性能のパソコンが必要になる。あまりに遅いパソコンでは快適に動作しない。
- 本来のパソコンのスペックをフルに使うことができない。仮想マシンでのプログラムの動作は、実マシンよりも遅い。
- 実際に今利用している環境でしか将来プログラミングをする予定がないのなら、わざわざFreeBSDで始めるのは遠回りかもしれない。最初からWindowsで始めた方が良い可能性もある。
- 仮想環境で得られる経験値は、実マシンの環境でのプログラミングによって得られる経験値には及ばないかもしれない。
- 所詮仮想環境だという気持ち働くと、充実感や達成感が低下する。
- セキュリティが弱い。イメージファイルを入手するだけで仮想マシンのすべてのデータにアクセスできる。
どれも無視して良いものではないでしょう。特に初めて挑戦するプログラミングくらい実マシンで行いたいものです。しかし、先に挙げたメリットと天秤に掛けると、いくらかメリットの方が勝り、仮想マシンを利用するという誘惑にはあらがえませんでした。
このシリーズで採用する開発環境は、仮想マシン上のFreeBSDですが、実マシンでやりたいというなら、そうしてもまったく構わないです。空いているパソコンがあればそれにFreeBSDをインストールするのはむしろ望ましいくらいです。
仮想化ソフトウェア
仮想化ソフトウェアはいくつか選択肢があります。その中で最も使いやすいと思うのがVirtualBoxです。Windows、macOS、Linuxなどで使えて、同じ環境を揃えるという目的にはぴったりなので、これを採用します。
QEMU/KVMというのも使いやすいです。しかし、Linuxでしか使えないので今回は採用しないでおきます。
WindowsにVirtualBoxをインストールする方法は、別ページに用意しました。
macOSにVirtualBoxをインストールする方法は、準備できてません。
LinuxにVirtualBoxをインストールする方法は、準備できてません。