基本的に、PC二は単一のOSが入ってる状態で機能しているわけ
ですが、物理的な振る舞いと異なる状態でそれを動かしているモノが
あります。
こうした機能はストレージやメモリー周りで存在しているのですが、
大昔から存在するのが
■ 仮想メモリー(Linuxのスワップ区画)
■ パーティション
■ RAIDボリュームの構築
などがそれに該当します。仮想メモリーとは物理メモリーではなく、ス
トレージの区画をメモリーとして使う機能ですが、大昔のCPUとストレ
ージコントローラーが遠い時代のそれでパフォーマンスが見込めるも
のではないのですが、メモリーの上限が低い時代の対応策としてソレ
が存在していました。
パーティションも同様に、単一のドライブを区画割りを行い、複数の
ストレージのように使う方法ですし、RAIDも複数のドライブを単一の
物として使い機能の異なる状態で運用する特殊な構造になっています。
こうした機能とは別に、20正規終盤から仮想化と言うも音が登場し、
現在では当たり前に個人が使える時代になっています。
仮想化と言うと、やはり、WINDOWS 7 Professhonal以上に
実装されていたXPモードがありますが、あれは自社製品の仮想化環
境である、【 VirtualPC 】の機能にXPのライセンス分が付いてきて
るような仕様だったと言えます。
その為、あのあたりからクライアントPCには仮想化環境が存在し
ていたわけです。しかし、VM Wareを使った仮想化と言うのはシン
グルスレッドPCしかない時代にもありましたから、その時代には既
に仮想化と言う概念が存在したのですが、これも【 Pentium Pro
以上のワークステーションを想定したモノ 】だったと言えます。
現状においてコア数も増え、64bit環境になり、潤沢なメモリー
の確保が可能な条件になると、UHD時代の映像制作とかのよう
な強烈な作業でも存在しない限りは個人のPCではメモリーを別
の使い方で利用できるようになっています。その条件で考えると
【 VMを立ち上げて利用する 】というのも同様の事のように
考える事が出来ます。
メモリーが潤沢な場合、RAM制作ソフトを使うという方法もあ
るのですが、こうしたソフトも容量の制約があまりなくなっており、
結構大容量な割り当てが出来る時代になっているのですが、こ
れはストレージのような信頼性は担保できませんが、SSDより
も高速(というのもメモリーコントローラーはCPUに物凄く近い場
所でバス幅も広いためストレージよりは高速になる)なストレージ
を担保できるのですが、現在のように128GBも実装できると、
64GB位をソレにあてて、爆速ストレージ区画にしてキャッシュ
置き場や素材置き場にすれば恐ろしく速くなるようなきもしなくも
ないですが、それだけメモリーが開いているというお条件だと、
【 VMにそれだけ充てたとしても影響が出ない 】
という事にもなります。
そうした内容から、別のマシンを動かすような余力を持たせ
た構成だとマシンをPC内部で動かすと言う選択が出来る訳で
す。
こう書くと、一昔前だとマシンスペックが削られ過ぎてダメだっ
たのですが、そういうんが大丈夫になってるので様子が変わっ
てきたと言う内容があります。
個人的ン仮想化環境でいうと、学習するにおいてはしやすい
時代になるような気がするのですが、その理由は、現在のコア
数及びスレッド数の増加と、仮想化に必要な機能がローエンド
プロセサまで浸透しているということです。というよりも古いアー
キテクチャはローカル環境での作業に準拠し、新しい環境で
ネットにつなぐとかしたほうがいいというのが現在の常識なん
ですが、これはセキュリティーにおける機能面で違いすぎると
言う理由からそうなります。
ただ、ローカルテスト用マシン(ローカルなのでクライアン
トか、もしくは、LAN環境という事になる)だと、レガシーでも
平気なんですが、そうしたモノを使える条件はあります。
新しいアーキテクチャではVT関連の機能が揃っており、
64bit環境も王権に包含される為、ソフトウェアを実行した
場合に発生する
【 1クライアントでシングルプロセッサの縛り 】
というのがなくなります。
つまり、コア数が多ければスレッドの多いVMを用意で
きると言う訳です。
現在は、こうした機能はどうなっているのか?と言うと、
WINDOWS 10を選択するとハイパーバイザー型の
Hyper-Vが実装されそれが利用できるようになっています。
その為、PC内に仮想クライアントを構築する事が可能になりま
す。ただし、こうした作業をする場合、BICは複数必要になる為、
それ用のマザーと言うのは大抵NICは複数実装されています。
そうでない場合には、CPI Express x1やx4のNICを導入す
ることになります。
とりあえず、デスクトップマシンお場合NICを2つ以上にしてか
らこうしたモノを使う事をお勧めします。というのも片方をVM専用
で、もう片方を元のマシン用で使えるからです。
とりあえず、Hyper-Vではスイッチを設定し追加をしてから、
VMの追加になるのですが、基本的に、VMの指定をしてNIC周
りの縛りなどを指定するのはどの仮想化環境でも同様なんです
が、とりあえず、
【 NIC周りを元のそれでいじるとインターネットにつながら
なくなる恐れがある 】
ので注意が必要です。あと、こうした事をすると、
【 自称:治せます系の知識と技能が見合ってない
人間だとどうしようもない 】
のでロクなことになりません。つまり、子どもが珍しものを見たら
触れてみたくなるようなレベルdsでそれに振れてるだけだと、構
造の理解に至ってませんから間違いなく状況の会z年は見込め
ません。w
時にそういうのが年齢に関係なく存在しているので気を付
けたほうがいいのですが、結果的にNICの設定をもともと使
っている物とは異なるそれで指定した場合には影響が出ない
ので、仮想マシンの利用分だけ別途用意したほうがいいとい
う事になります。
この利点ですが、
【 マシンを起動してる最中に、別のOSを利用できる 】
ということになるのですが、MinGWやSygwinを入れなくても
KnoppixとかLubbuntuのようなかるのが走ると言う利点が
あります。
その為、それを複数デスクトップ上で走らせることが可能で、
マシンとして存在させる利点があるという事になります。
こう書くと、【 アプリケーションレイヤーソフト 】と混同する
ことがありそうですが、あれは【 ソフトを動かす機能 】なので
OSをそのまま弄るような振る舞いは出来ません。
そして、仮想化環境だと、
■ クライアント型 : VirtualPC
■ ハイパーバイザー型 : Hyper-V
のように異なる実行方法のモノがあるのですが、これについ
ては、前者がアプリケーションレイヤー層よりも上で動くモノ
であり、後者が物理層に近い場所でいうごくモノである為、
処理において全く違うわけです。
こうした仮想化ソフトと言うと、オラクルの
■ Virtualbox
https://www.virtualbox.org/
があります。これは以前紹介しましたが、ネットブック辺りでも
Knoppixをホストにして、利用した場合には、そのまま別の
物を起動できる状態があったのですが、基本的にCUIのLi
nuxを実装するとかだと、意外と環境うぇらばない状態があり
ます。
以前紹介したようにこれはQEmuがベースになっていた
のでホスト型仮想環境だったのですが、現在のバージョンは、
ハイパーバイザー型のKVMになっています。
この利点はやはり、【 MACでも大丈夫 】ということで、
OS依存度がない状態で利用できます。
とりあえず、WINDOWS 10に関してはBASHを実装した
ので、追加機能のBASHでダメな場合はHyper-Vと言う
【 既に単体でどうにでもなる状態がある 】
のですが、そうしたサードパーティーの仮想化環境を利用
する事も可能です。
つまり、現状においては、そうした選択肢も存在していると
言う訳です。
これとは別に、1台のマシンで複数のOSを使う選択として
【 ブートローダーを使った選択 】があります。
多分、MACユーザーのほうが、なじみが深いと思いますが、
【 BootCamp 】
がそれです。そう、ハードなワークアウトで痩せると言う(違う!)
ではなく、WINDOWSをMACでも利用できるというアレです。
結果的に、MAC OSXはLinuxみたいな振る舞いをするの
で、アレの登場で、結果的にMACは全部動くマシンになったの
ですが、とりあえず、こうした機能は大昔からあります。
例えば、WINDOWS 7のマシンに
■ WINDOWS 2000
■ WINDOWS XP
■ WINDOWS 7(x86-32)
■ WINDOWS 7(x86-64)
■ Ubuntu
■ Fedra
とか入れて、それをブートで選択するとかもできますから。
この場合、パーティションを切っておいて、それを使うという流れ
になるのですが、WINDWS関連でいうと
【 7辺りから過去のグレードについては実行時の
オプションで対応可能 】
になっています。
つまり、それでだめだったらXPモード使ってくださいと言うコンセ
プトです。あと、XPは大丈夫で10ではデフォルトではムリなものとし
てアセンブリがありますが、あれも、VMダウンロードで対応している
のでネット接続をそれで行うのは危険極まりないので推奨はしませ
んが、とりあえず、10だからアセンブリが走らないというのは虚偽
です。w
とりあえず、マルチブートでいうと、現状だと
【 10を使って足りない機能で利用する 】
と言う条件になりますが、WINDOWS 10では、その不足分を、
【 Hyper-V 】
で対応しています。つまり、仮想化でリソースの軽い物は利用し
ようと言うアプローチがクライアントOSでも存在しています。
つまり、仮想化の場合だとリソースを実際に動いてるマシンと
シェアする事になるので、厳しいわけですが、そうした内容を考え
ると、マシンスペックをフルで使う場合には、そのOSだけを起動
させて利用したほうがいいという結論に行き着くので、そうした場
合には、やはり、ブートローダーを使う事になる訳です。
つまり、ブートロ-ダーと仮想化の違いは、
【 仮想化 】
サーバのようにメインフレームが落ちてもらうと困る条件で
異なるOSを使用する場合の選択。また、OS間で何かを
やり取りする場合に、起動しなおすのが煩雑場合の選択
肢
【 ブートローダー 】
電源を切っても問題がないようなクライアントPCにおいて、
マシンおリソースをフルで使う場合の選択肢
となります。とりあえず、WINDOWS 10ですが、これはVHD
ブートと言う機能を実装しており、VHD区画を作成して、ブート
ローダーで別のOSをインストールして使うという事が可能に
なっています。
その為従来型のパーティションを切って云々とは少し異な
る作業でそれを実現してます。ここでも仮想化技術が存在し
ているということになります。
現状において1台のPCで出来る事と言うのは増えている
のですが、WINDOWS10に関しては、仮想化、後方互換、
マルチブート、BASH実装などにおいて色々できる条件が存
在しています。
仮想化とマルチブートの違いはそんな感じなんですが、この
選択肢と言うのはOSの縛りはありません。ただし、仮想化につ
いては、アーキテクチャの違いで出来る事が相当変わってしま
うので、その辺りは注意が必要ですが、単一のマシンで単一
のOSしか動かないという条件などは、1990年代終盤で終焉
しているような内容なので、個人の選択でそうした事が可能に
なっているわけです。