VT-X、AMD-V、Hyper-V、WSL、WSL2の違い

調べて分かったことザックリメモ。

※間違いあれば指摘していただけると非常にうれしいです。

違い

VT-XとAMD-V

  • VT-X:IntelのCPUに内蔵されている「仮想化を支援しまっせー」な機能のこと。
  • AMD-V:AMDのCPUに内蔵されている「仮想化を支援しまっせー」な機能のこと。

BIOS/UEFIからON・OFFができる。(通常はデフォルトでONになっているはず)

最近のCPUならほぼ全部付いているらしい。
仮想化がON担っている場合(Windows10)
▲タスクマネージャの仮想化の項目でONになっているか確認できる。

Hyper-V

  • 「VT-X」や「AMD-V」がONになっているWindowsで使える仮想化技術のこと。
  • 俗に言う「ハイパーバイザー」。
  • Windows10 Pro以上のエディションでないと使えない。
  • Hyper-Vを有効にすると、Hyper-VがVTーXやAMD-Vを占有してしまうらしいので、他の仮想化ソフト(例えばVirtualBox)などはVT-Xが使えなくなり、結果的に起動できなくなる。

WSL

  • Windows純正の「Windows上でLinuxを動かすソフト」。
  • WSLではLinuxカーネルを使わずに、Windows上(というかWindowsカーネル)だけでLinuxをシミュレートする。要するに再現できるのは”LinuxのモノマネができるWindows”であって、一言で言えば”偽物”。
    (ちなみにVirtualBoxやVMwareでは、実際にWindows上で”本物のLinux”を再現できる。しかし重い。)

WSL2

  •  WSLをパワーアップしたバージョン。
  • Hyper-V(というかHyper-Vの一部機能?)を使って仮想化するので、”本物のLinux”を再現できる。
  • Hyper-VはWindows Pro以上のOSでないと使えないけど、WSL2でHyperーVを使用する場合は、Windows Pro以外のOS(Homeなど)でも使えるらしい。つまり最近のPCでWindows10が入ったものならWSL2が使える。
  • Windowsのバージョンが2004以上なら誰でも無料で使える。エディションも問わない。

    ▲Win+R → winverで表示できる。
  • 以下の図で書かれている「WSL2用に用意されたLinuxカーネル」を追加インストールする必要があるらしい。
    (具体的にいうとこのファイル→x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ
    ▲引用元:https://www.atmarkit.co.jp/ait/articles/1906/14/news019.html

使用方法とか

WSL、WSL2

以下のようにすれば、WSL2が使えた。

  1. Windowsの機能からLinux用WindowsサブシステムをONにする
  2. 上でも書いている「WSL2用に用意されたLinuxカーネル」を別途アップデートするパッチを適用
  3. PC再起動
  4. Windows StoreからUbuntuなどのOSをダウンロード&インストールする

 

この手順をするだけで、以下のようにLinuxが起動できた。

wsl2で動かしたubuntu20.04

▲WSL2で動かしたubuntu20.04

VirtualBox

VirtualBoxでは、VT-XやAMD-Vを使う。

なのでHyper-Vが有効になっていると(VT-Xなどを占有してしまうので)起動しなくなるらしいけど

WindowsハイパーバイザープラットフォームをONにすると両方起動できるようになるっぽい。

参考仮想マシン関係の「Windowsの機能」

Docker

Dockerには

  • Docker Desktop for Windows
  • Docker Toolbox on Windows

という2種類があって、それぞれ以下のように違うらしい。(2021年2月現在)

Docker Desktop for Windows Docker Toolbox on Windows
仮想化に使う機能 WSL2 もしくは Hyper-V
(ハイパーバイザー型)
WSL もしくは VirtualBox
(ホスト型)
ダウンロードできる場所 Docker公式 Docker ToolBoxのGitHub(非推奨扱い)
動作するOSのエディション
  • WSL2を使う場合:Windows10 Home以上
  • Hyper-Vを使う場合:Windows10 Pro以上

(興味がないので調べてません)

今現在は、前者の「Docker Desktop for Windows」一択。

なぜなら

  • 今現在はWindows10であればどんなPCでもWSL2が使えるため
  • Docker自身がWSL2での使用を推奨しているため

という理由。

 

おわり

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

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

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

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

コメント

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