仮想マシンによる開発環境の利点
開発環境を「仮想マシン」(VirtualMachine)という形で提供するメーカが増えてきました。
仮想マシンに親しみの無いユーザは、少し敷居が高い様に感じるかもしれませんが、使ってみると、驚くほど楽に開発環境が完成します。
仮想マシンとその実行アプリケーション
WindowsやUbuntu等のPC上で、普通のアプリケーションと同じ様に仮想マシンの実行アプリケーションを開きます。
そして、そのアプリの中で、仮想的なコンピュータを起動する。
そのコンピュータを仮想マシンや仮想PCと呼びます。
例えば、Windows 10の中で、もう一つWindows 7を起動するようなことができます。
例えば、Ubuntuの中で、他のLinuxを起動することができます。
仮想マシンとして実行されるOSをゲストOS(ゲストPC)と呼び、その親となっている物理的なPCのOSをホストOS(ホストPC)と呼びます。
これを実現するアプリケーションは複数登場しており、以下のようなものがあります。
- VMware(VMware)
- VirtualBox(オラクル)
- Hyper-V(マイクロソフト)
登場した頃は、ハイスペックなPCでないと満足に動作しませんでしたが、ハードウェア、ソフトウェア技術の向上により、ローコストなPCでも実用的なレベルになってきました。
開発環境の構築は面倒ですが…
一方、開発環境というのは、目的のボードに適したソフトウェアを開発するためのコンパイラやツール群が準備された環境のことです。
各ユーザーのPC上に開発環境を構築しようとすると、非常に手間がかかります。
それは、各ユーザーのPCの中身(ハードウェア、OSやバージョン、インストール済みのアプリケーション)が異なるため、開発に必要な多くのソフトウェアを一つ一つインストール/設定しなければならないからです。
もし、全ユーザが同じPCを持っていて、中のデータやソフトを消して良いというのであれば、誰か一人が準備した開発環境のハードディスクの中身を丸ごとコピーするだけで開発環境が準備できるはずです。
そんなことはできるわけがありません。
そこで仮想マシンの出番です。
仮想マシンは、仮想的なPCのハード構成を記録したファイルとハードディスクの中身に変わる大きなファイルで構成されています。
従って、このファイルを別の人に渡せば、まるっきり同じ仮想PCが再現できるのです。
(但し、ライセンスやMACアドレスの重複に注意する必要があります)
メーカが仮想マシンの中で、ボード用の開発環境を作り上げ、そのファイルをユーザに提供すれば、ユーザは面倒な開発環境構築作業を行わなくて済みます。
アットマークテクノが仮想PCの中でArmadillo-IoT用の開発環境を作り上げ、そのファイルをユーザに提供した。その仮想マシンをATDEと呼んでいます。
丸ごとコピーして配って良い様にするためにはライセンスの問題など、多くの問題をクリアしなければならないので、提供する側のメーカは大変ですが、皆が同じ環境で使うので、トラブルが減ったり、トラブルが発生しても同じ環境なので解決しやすかったり、メリットも多いのです。
仮想マシンのLinux上に構築された開発環境。ホストとなるPCはLinuxでもWindowsでもOK
PC上で別のPCを動かすようなものですから、通常は、そのPCに要求されるスペックは若干高くなります。
Windows上でWindowsを動かすとなると、ちょっと古いPCではつらいですね。
CPUのスピードよりもメモリ量が厳しいです。
CPUの能力は、ホストPC(実物)とゲストPC(仮想PC)とでその時々で分け合えますが、メモリは最初から完全に分けて使うので、単純に考えるとメモリが半分になってしまうわけです。
例えば、元のPCのメモリ量が、そのOSの推奨スペックぎりぎりで使っていた場合、それを半分に分けてしまえば、推奨スペックや最低スペックを大幅に割ってしまいます。
すると、足りなくなったメモリをハードディスクに求めるので、極端に動作が遅くなり、実用的と言えなくなります。
一方、CPUのスピードと実際の動作スピードは概ね比例するので、使え尚ことはありません。
Windowsは、PCのスペック向上に沿って、OSの要求スペックを上げ、より便利に使いやすく変革していっているので、要求されるメモリ量が多めです。
一方、Armadilloの開発環境ATDEはLinuxで作られています。
仮想マシン上のOSやグラフィックに求めるスペックをできるだけ下げてある様子です。
その為、手元のノートPC(5年くらい前のモデル)でもサクサク動きました。
Windows 10のホストPCで、VMware(VMware Workstation 12 Player)を起動し、ATDEのファイルを指定する、それだけで開発環境が目の前に。
すばらしい。
こんなに楽できたのは初めてです。
ATDE設定を見てみると、使用メモリは1GBに設定されていました。
Windowsパソコンで使う場合は、Windows用にメモリを2GBくらいはほしいので、メモリ4GBくらいのPCが良いですね。2GBでは少しつらいと思います。
Linuxパソコンの場合、Ubuntu等なら4GB、Lubuntu等なら2GBでも気にならないかもしれません。
おまけ
ATDEは、デフォルト設定でスクリーンセーバ/離席保護が有効になっているため、しばらく放置していると待機画面になり、再開時に毎回パスワードを入れなければなりません。
スクリーンセーバ/離席保護は、必要に応じてホストPCで有効にしていると思いますので、ゲストPCのスクリーンセーバは不要だと思います。
その場合は以下の様に無効に設定しましょう。
[アプリケーション]‐[システムツール]‐[設定] から [プライバシー] を開き、[画面ロック]を[オフ]にします。