仮想化技術まとめ:ハイパーバイザー型・ホスト型・コンテナ型の違いとWSL2の仕組み

仮想化とは、1台のコンピュータを複数台のコンピュータのように見せかけたり、複数台のコンピュータを1台のコンピュータのように見せかける技術です。

この記事では、前者の「1台の物理マシンを複数に見せる仮想化」を行う3種類の方式について、学んだことをメモします。


1. ハイパーバイザー型(レンタルサーバーの仕組み)

物理マシンの土台に仮想化の専用ソフトを直接置き、その上に複数のOSを載せる方式です。

  • 特徴: 無駄なOSを挟まないため、非常に高速に動作します。
  • 身近な応用例(WSL2): Windowsの機能をオンにすると、物理PCの土台に「Hyper-V」という専用ソフトが滑り込み、その上にWindowsとLinuxが並列で載る構造に切り替わります。
  • 実際の操作感: 一見するとWindows上でLinuxが動いているように見えますが、実は別々に起動しています。これはSSH接続と非常によく似ており、WindowsのPowerShellやVSCodeのターミナルが「WSLのビューワー」として機能している状態です。

2. ホスト型(別のOSを試したい時向け)

自分のOS(Windows等)の上で仮想化アプリを起動し、その中で別のOS(Linux等)を丸ごと起動する方式です。

  • 主な目的: 開発者が自分のPCの環境を汚したくないとき、かつ「今のPCとは異なるOS」を丸ごと動かしたいときに使います。
  • デメリット: OSの上でもう一個OSを動かす(2重になる)構造のため、動作が重くなります。

3. コンテナ型(同じOSのままパターンを試したい時向け)

OS自体は新しく起動せず、いま動いているOSの仕組みを全員で共有し、上乗せするツールやアプリの環境だけを個別の「箱(コンテナ)」として切り離して起動する方式です。

  • 主な目的: 自分のOS上でコンテナアプリ(Dockerなど)を起動し、ツールのバージョン違い(例: Node.jsのバージョン違い)や、様々な組み合わせの環境を手軽に構築するために使います。
  • ホスト型との決定的な違い:
    • ホスト型: 「OS自体」を新たに起動する(重い)
    • コンテナ型: OSは1つのままで、「ツールの環境」だけを新しく起動する(軽い)

💡 まとめ
異なるOSを動かす必要がないのであれば、ホスト型よりも圧倒的に動作が軽量な「コンテナ型」を選択するのが現在の開発・テスト現場の主流です。

Leave a Comment

CAPTCHA