ハイパーバイザーとは?超わかりやすく

ハイパーバイザーのことを調べていたら「結局ハイパーバイザーってなんなんだよ!!( ゚д゚ )」となったので

忘れたときのために分かりやすく解説しておきます・・・。

ハイパーバイザーとは?

ハイパーバイザーは「管理者」の上を行く「管理者たちの管理者」のこと。

これだけだと「は?何言ってんだコイツ」となるので順番に説明していくと

まず、OSのことを別名「スーパーバイザー」と呼びます。日本語訳すると「監督者」「管理者」などという意味になります。

別名というかOSの本来の呼び名は「スーパーバイザー」と呼ぶらしいのだけど、IBMがOS(Operating System)と呼びはじめたので、OSという名前が定着したらしい。(Wikiより)

 

例えばWindowsで言うと、Windowsの中にある中核部分(カーネル)がスーパーバイザーと呼ばれる存在で、このカーネルが

  • 「HDDさん、これを記録しといて」
  • 「CPUさん、これを計算しといて」

みたいにあれこれ指示するわけです。要するに管理者として働くわけです。

 

さていきなりですが、ここで仮想マシンの話をします。

仮想マシンいうのは「1つのパソコンで2つ以上のOSを同時に動かすこと」を指します。

例えば

パソコン
├ Windows
└ Linux

という感じで

  1. 1つのパソコンの中にWindowsとLinuxをインストールする
  2. Windowsの中でLinuxを動かす

みたいな感じのことを仮想マシンといいます。(この場合、Linuxが仮想マシンです)

 

ただし、ここで問題があります。

それは

Linuxがパソコンに何か命令したいときは、Windows経由で「パソコンさん、これを計算しといて」という風に指示しないといけない

という点です。

このような余分な伝達のせいで動作が遅くなってしまいます。

 

これを何とかしようということで、ハイパーバイザーという仕組みが作られました。(そうなのかは知らないですが。。)

以下のように、パソコンの上にハイパーバイザーという名の土台を作って、その上に色々なOSを動かします。

パソコン
└ ハイパーバイザー
  ├ Windows(ホストOS)
  └ Linux (ゲストOS)

 

このようにすることで、例えば

  • Windowsがパソコンに何かさせたいときは・・・
    1. ハイパーバイザーに「パソコンにこれを計算させてください」と命令する
    2. ハイパーバイザーはPCに「パソコンさん、これを計算してください」と命令する
  • Linuxがパソコンに何かさせたいときは・・・
    1. ハイパーバイザーに「パソコンにこれを計算させてください」と命令する
    2. ハイパーバイザーはPCに「パソコンさん、これを計算してください」と命令する
  • Linux・Windowsがお互いに通信したいときは・・・
    • ハイパーバイザー経由で通信する

という感じで、ハイパーバイザーがスーパーバイザーたちの管理者的なポジションになります。

すべてをハイパーバイザー経由にすることで、高速に動作するようになる・・・らしいです。

ちなみに、ハイパーバイザーはスーパーバイザーの上を行く存在という意味で「ハイパーバイザー」という名前が付いたらしいです。

Windowsのハイパーバイザ → Hyper-V

例えばWindowsには「Hyper-V」という名前のハイパーバイザーがあり、Hyper-VをONにした状態で起動すると

パソコン
└ ハイパーバイザー(Hyper-V)
  └ Window

という構成で起動します。

WSLとWSL2

WSL2(Windows純正の仮想マシンソフト)をインストールして、Windows上のWSL2でLinuxを動かすと

パソコン
└ ハイパーバイザー(Hyper-V)
  ├ Windows(ホストOS)
  └ Linux (ゲストOS)

という感じで、ハイパーバイザー上で仮想マシンを動かせます。

 

ちなみにWSL(WSL2ではない)は、HyperーVを使わないらしいので

WSLでLinuxを動かした場合は以下のような感じになります。

パソコン
└ Windows
  └ WSL
    └ Linux

なので、WSL2はWSLより高速らしいです。(どこで見たか忘れたのですが約6倍くらい早いとか)

VirtualBox → ハイパーバイザーではない?

例えば、WindowsでVirtualBoxをインストールして、VirtualBox上でLinuxを動かすと

パソコン
└ Windows
  └ VirtualBox(ホスト型仮想マシン)
    └ Linux

という構成になります。

このとき起動したLinuxは、広義の意味では「ホスト型のハイパーバイザー」などと呼ぶらしいですが、狭義ではハイパーバイザーではなく、「ホスト型仮想マシン」などと呼ぶらしいです。

 

ザックリ説明するとこんな感じです。

 

おわり

仮想環境
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。WEBエンジニア。

技術スタック:TypeScript/Next.js/Express/Docker/AWS

フォローする
フォローする

コメント

タイトルとURLをコピーしました