BeneDict 地球歴史館

BeneDict 地球歴史館
menu

週刊スモールトーク (第241話) MacでWindowsを起動(1)~仮想化ソフト比較~

カテゴリ : 科学

2014.01.26

MacでWindowsを起動(1)~仮想化ソフト比較~

■未来のノートパソコン

世界一美しいノートパソコンはMacBookAir!

MacBookAitなんて言うと、おまえはAppleフリークだろ、と白い目でみられそうだが、美しいものは美しい
それだけの話だ。

しかも、MacBookAirは、絶対品質もコストパーフォーマンスも最高・・・

1.高剛性のアルミニウム一枚岩ボディ。

2.透明感のあるヴィヴィッドな液晶。

3.打刻感のあるしっかりしたキーボード。

4.12時間の長寿命バッテリー。

5.ゲームも可能な高性能3Dチップと、HDDより5倍~10倍高速なSSD。

6.Windowsより5年は進化したOSX(Mavericks)。

ただし、Windowsが劣るのはパソコンメーカーの責任ではない。供給しているのはマイクロソフトだから。それにしても、最新の「Windows8」と「Windows8.1」はヒドすぎる・・・よくこんなものを思いついたものだ。しかも、それを作って出荷したというのだから、驚きだ。チェック体制はどうなっているのだ?

では、なぜ、そんなトンデモOSが市場の90%を支配しているのか?

事実上の世界標準パソコン「IBMPC互換機」の初代OSを、マイクロソフトが供給したから(一から開発したわけではない)。つまり、この世界は初めにやったもん勝ち。

ここで、マイクロソフトの敵だと思われては困るので、一応フォローしておくと、マイクロソフトにもいいところはある。互換を保とうとする姿勢、これは立派だ。そのおかげで、ユーザーは過去の資産を使い回すことができる。地味だが、ユーザー視点に立った良い心がけだ。ではなぜ、ユーザー視点に立って、使いやすくしないのか?

・・・・・・

話をもどそう。MacBookAirは、確かに素晴らしいマシンだが、ひとつ難点がある。いまさらだが、IBMPC互換機ではないこと。現在、パソコン市場の90%を占めるのはIBMPC互換機(OSはWindows)。そして、ビジネス現場では、Windowsアプリの「Word」と「Excel」がデファクトスタンダードとなっている。

現に、今いる会社では、取引先との契約書と議事録はWord、スケジュールと見積書はExcelと決まっている。場合によっては、「Word2010」を使ってくださいとバージョンまで指定されることもある。さらに、ホームページの作成とメンテは「Dreamweaver」。というわけで、Windowsアプリは欠かせない。

一方、Mac版のWord、Excel、Dreamweaverも一応あるにはある。ただし、作り込みに難があり、機能も速度もWndows版より劣る。早い話が、Windows版の劣化バージョン。たくさん売れるWindows版はガチで、そうでないMac版はそれなりにという経済原則によっているわけだ。それに、取引先とのやりとりはWindowsファイルなので、Mac版は論外。

だから・・・

MacBookAirに執着するなら、Windowsを走らせるしかない。

じつは・・・

それを実現する仕掛けもある。たとえば、Apple純正の「BootCamp」。

こう言うと・・・

MacでWindows?

あー、エミュレータね、遅すぎて使い物にならない、とパソコン暦の長い人は一刀両断にするだろう。

たとえば、Windows7には、WindowsXPを走らせるXPモードがあるが、正直使い物にならない。処理速度は遅いし、動作しないアプリもたくさんある。特に、DirectX(3Dグラフィックを処理するプログラム群)を使うアプリは全滅。

ところが、「MacでWindows」は速度も十分だし、DirectXも問題なし。つまり、ほとんどのアプリが動作する。だから、エミュレータを十把一絡げ(じっぱひとからげ)にしてはいけない。

そもそも・・・

BootCampは、いわゆる「エミュレータ」ではない。

■エミュレータの仕組み

では、エミュレータって何?

簡単に言えば、パソコンでファミコンのゲームを動かすようなもの。

この場合、パソコン上に、ハード(装置)ではなく、ソフト(プログラム)で構築された「仮想的なファミコン」が存在する。このソフトのことを「エミュレータ」とよんでいる。つまり、エミュレータとは、パソコン上で、ファミコンの機能を真似る(エミュレーション)プログラムのことなのである。

もちろん、エミュレータはパソコンとファミコンに限らない。たとえば、MacでWindowsを動かすとか。ただし、ハードの構造があまりに違うと真似できないし、真似する側には強力なソフトウェア機能が必要だ。たとえば、自動車のエンジンはコンピュータで真似できるが、エンジンでWindowsを真似ることはできない。

では、エミュレータは具体的にどんな動きをするのか?

たとえば、ここに英語で書かれた命令書があったとする。アメリカ人なら読んですぐに実行できるが、日本人の場合、一旦、命令書を日本語に翻訳する必要がある。つまり、翻訳しながら実行するのである(エミュレーション)。当然、そのぶん、処理が遅くなる。命令がひとつならいいが、何千、何万もあれば、翻訳の手間が増え、実行速度も激減する。

だから、エミュレータは遅いわけだ。

これを、コンピュータに当てはめてみよう。たとえば、アメリカ人をIntel系CPU、日本人をARM系CPUとする。この場合、Intel系CPU用に書かれた命令書は、ARM系CPUは理解できない。そこで、ARM系CPUがこの命令書を実行するには、ARM系の命令に翻訳しながら、実行しなければならない。

ところが・・・

現在、MacとIBMPC互換機は、同じIntel系CPUを採用している。CPUが同じなら、エミュレータは不要なのでは?

基本イエス、例外的にノー。

だんだん、話が面倒臭くなってきた。でも、もう少しの辛抱・・・そうすれば、エミュレータを完全に理解し、生半可なIT技術者相手に一席ぶつことができますよ!

まず、CPUの動作モードは、基本、「特権モード」と「ユーザーモード」がある。昔、使っていたモトローラのMC68000系では、特権モードをスーパーバイザーモードとよんでいたが意味は同じ。「特権モード」とは、読んで字のごとく、すべてのハードにアクセスできる万能モード。一方の「ユーザーモード」は制限付きのモードである。

では、なぜ、こんな面倒なことをするのか?

ワープロにしろ、メーラーにしろ、ゲームにしろ、すべてのアプリはキーボード&マウス、モニタ、HDD、メモリなどのハード資源を使用する。ところが、ハード資源は1つしかない。そこで、OSの管理の元、複数のアプリがハード資源を共有するのである。

ところが、この共有が危険なのだ。

もし、特定のアプリにバグや悪意があると、ハード資源に悪さをすることがある。その場合、そのハード資源を使用している他のアプリも動作が不安定になる(最悪フリーズ)。もし、そのハードがメモリなら一大事だ。メモリを使わないアプリは存在しないので。もちろん、OSも例外ではない。もし、全体を管理しているOSが暴走したら、どうなるか?

システム全体がダウンする。

最悪だ。

たかが、ひとつのアプリのためにシステムが全滅!?

シャレにならん。なんとかならないのか?

そこで・・・

みんなが共有しているハード資源へのアクセスを制限するのである。具体的には、ハードに直接アクセスできるのはOSだけにし、アプリは禁止する。そうすれば、バグあるいは悪意のあるアプリがあっても、ハードに悪さできないので、システム全体がダウンすることはない。

具体的には・・・

ハード資源にアクセスできる特権モードはOSだけに与え、アプリはユーザーモードで我慢してもらう。

では、アプリがハード資源、たとえば、HDDを使う場合はどうするのか?

OSを介して使用する。つまり、”間接”アクセス。

ところで、OSってそんなに信頼できるの?

たぶん。

OSを作っている会社は、どこの馬の骨ともわからないアプリ会社とは違うから、という暗黙の了解がある。だから、期待してますよ、マイクロソフトさん!?(皮肉やろ)

話がアブナイ・・・本題にもどろう。

MacBookAirでWindowsを動かす場合、MacとIBMPC互換機はCPUは同じなので、エミュレータは不要?

との問いに対し、

基本イエス、例外的にノー!

と答えた理由である。

MacBookAirで、Windowsを動かす場合、「仮想化ソフト」が必要になる。仮想化ソフトは、MacOSX上に「仮想的なパソコン」を構築し、そこで、Windowsを動作させる。このとき、主となるOSをホストOS、従属するするOSをゲストOSという。

この場合、

・ホストOS:MacOSX

・ゲストOS:Windows

つまり、WindowsはMacOSXのひとつのアプリとして、ユーザーモードで動作するわけだ。ところが、Windowsは、生まれも育ちもOSなので、特権モードで走っていると思い込んでいる。そのため、特権モードでのみ実行できる特権命令を乱発する。もちろん、ユーザーモードでは特権命令は実行できないので、Windowsは動かない。

では、どうしたらいいのか?

Windowsが発行する特権命令を横取りし、特権モードのMacOSXにやらせ、あたかも、Windowsが実行したかのように真似るのである。つまり、エミュレーション。

じゃあ、やっぱり、遅い?

ノー!

エミュレーションで実行するのは特権命令だけで、非特権命令はすべて「CPUで直接実行」する(非特権命令はユーザーモードで実行できるので)。しかも、命令の大半が非特権命令なので、ほとんど「CPUで直接実行」できる。つまり、IBMPC互換機とほぼ同等の速度で動作するわけだ。

ゆえに・・・

エミュレータは不要?かと問われれば、基本イエス、例外的にノー、なのである。

■仮想化ソフト

つぎに、MacBookAirでWindowsを動かす方法を見ていこう。

第一候補が、前述したApple純正の「BootCamp」。しかし、これはエミュレータとはいえない。WindowsはMacOSXのひとつのアプリとして動くのではなく、MacBookAirのハードを占有するから。つまり、Windowsはほとんど「CPUで直接実行」される。

つまり・・・

BootCampを実装したMacBookAirは、「MacBookAir」という名の「IBMPC互換機」と考えていいだろう。

だから、Windowsのアプリも、MacBookAir上で問題なく走る。互換性の低い3Dゲームソフトでさえ。そもそも、ゲームソフトはIBMPC互換機でも互換が取りにくいのに、エミュレータで動かすとは立派!

ところが・・・

BootCampにはひとつ問題がある。MacとWindowsを切り替えるには、再起動しなければならないのだ。これは、ちょっと面倒。Windows専用と割り切って使えばいいのだが、せっかく、Macを買ったのだから、Macのソフトも使いたいではないか。

そこで、重宝するのが「仮想化ソフト」だ(厳密にはエミュレータにあらず)。

仮想化ソフトを使えば、再起動することなく、MacOSXとWindowsを両方使うことができる。では、MacOSXとWindowsはどうやって切り替えるのか?

パッドを3本指でひとこすり!(3本指スワイプという)

これだけで、MacとWindowsが瞬時に切り替わる。初めて見たとき魔法かと思った・・・

では、なぜ、こんなことが可能なのか?

BootCampは、MacOSXが実行中はWindowsは起動せず、その逆もまた真なり。ところが、仮想化ソフトでは、MacOSXとWindowsは両方起動している。だから、一瞬で切り替わるのだ。

そこで、今回はBootCampをやめて、仮想化ソフトを使うことにした。

仮想化ソフトの候補は3つ。

1.PalarrelsDesktop(有料)

2.VMwareFusion(有料)

3.VirtualBox(無料)

ここで、仮想化ソフトの決め手になるのが、

1.Windowsアプリはちゃんと動くか?

2.処理速度は実用に堪えるか?

「1.アプリの動作」で、鬼門となるのが3Dグラフィックだ。3Dグラフィックは「グラフィックチップ」によって処理されるが、チップの種類が多く、機能もバラバラ。そのため、アプリがすべてのグラフィックチップに対応するのは不可能。

そこで、グラフィックチップの違いを吸収するために、WindowsにはDirectXというプログラムが実装されている。つまり、アプリは直接グラフィックチップにアクセスするのではなく、DirectXを介して、間接的に操作するのである。これなら、チップが違っても互換が保てる(100%ではない)。

ところが、ゲームソフトは、「速度」が命なので、グラフィックチップを直接叩く傾向がある。さらに、スペックの低いチップを捨てて、高機能チップを当て込む傾向もある。そのため、IBMPC互換機でも、機種によって動いたり動かなかったりする。さらに、同じ機種でも、動くゲームソフトもあれば、動かないものもある。裏を返せば、互換性の低いゲームが動けば、たいていのアプリは動く。

つぎに、「2.動作速度」。これも、速度がタイトなゲームソフトが鬼門になる。逆に、ゲームさえ快適に動けば、ビジネスソフトは問題はないだろう。一方、3Dといえば、3DCGソフト(3dsMax、Maya、Lightwave3D)もあるが、こちらは問題はない。3DCGソフトは、最終レンダリング(色塗り)ではグラフィックチップを使わないから(CPUで実行する)。

では、具体的にどの仮想化ソフトがが良いのか?

さすがに、仮想化ソフト3本とも試すほどヒマではないので、ネットで調べてみた(但ししらみつぶしに)。

その結果、

1.PalarrelsDesktop→DirectXが高速動作

2.VMwareFusion→DirectXが低速動作(Palarrels比べ2割~3割ダウン)

3.VirtualBox→DirectXは低速で不安定(無料だからしかたがない)

以上、考えるまでもなく、「PalarrelsDesktop(パラレルズ)」で決まり。

というわけで、「MacBookAir+Palarrels」でMacとWindowsを走らせることにした。一粒で二度美味しいノートパソコンというわけだ。

ところが・・・

初めは順調だったのに、あとで、Windowsの金儲け主義のためにひどい目にあった。まぁ、最終的に動いたから良かったのだが。

《つづく》

by R.B

関連情報