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 WindowsDocker 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生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

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