WSLとは?「WSL1とWSL2の違い」などをわかりやすく解説!

この記事では『WSL(Windows Subsystem for Linux)』について、

  1. WSLとは
  2. WSL1とWSL2の違い

などを図を用いて分かりやすく説明するように心掛けています。ご参考になれば幸いです。

WSLとは

WSLとは

WSLはWindows Subsystem for Linuxの略であり、Windows上でLinux環境を実行するための仕組みです。

WSLを利用することで、Windowsを使いながら、Windows上でLinuxを動作させることができるようになります。しかも、WSLを使ってLinuxを実行する際には、Windowsを再起動する必要がありません。つまり、Windowsにインストールされているソフトウェアの1つのようにLinuxを使用することができます。

WSLはUbuntu、OpenSUSE、DebianなどのLinuxプログラムからのシステムコール(APIやファイルアクセス要求など)をWindows APIに変換することで、Linuxのバイナリプログラムをそのまま実行できるようにしています。

2016年8月に最初のWSL(以後、WSL1と呼びます)のベータ版、2017年10月にWSL1の正式版が公開されました。その後、2019年2月にWSL2(WSL1の次バージョン)が公開されました。

補足

  • WSLはマイクロソフト社が開発者のためのツールとして提供しています。
  • WSL1の正式版はWindows 10(バージョン1709)から利用可能となりました。
  • WSL2はWindows 10(バージョン2004)から利用可能となりました。

WSL1とWSL2の違い

WSL1WSL2の違いを下記に示します。

WSL1とWSL2の違い

  • WSL2はWSL1より軽快に動作できる&高速起動できる
  • WSL2はWSL1よりファイルアクセス速度が向上している
  • WSL2は仮想マシンによって「完全なLinux」を動作できる

これらの違いについて順番に説明します。

WSL2はWSL1より軽快に動作できる&高速起動できる

WSL1も比較的軽快に動作しますが、WSL2はさらに高速に動作できるようになっています。

また、WSL2はWSL1よりもLinux起動時のメモリ消費量が少ないため、より高速に起動できるようになっています。

そのため、WSL2を使えば、搭載しているメモリが少なくなりがちなノートPCでも、快適にLinuxを利用することができます。

WSL2はWSL1よりファイルアクセス速度が向上している

WSL1では「NTFS(Windows標準のファイルシステム)」上にLinuxのファイルを保存しています。

一方、WSL2では「ext4(Linux標準のファイルシステム)でフォーマットされた仮想HDD(*.vhdxファイル)」上にLinuxのファイルを保存しています。WSL2では、Linuxファイルと直接やり取りできるため、ファイルアクセス速度が向上しています。

補足

  • ファイルシステムはコンピュータがファイルを操作・管理するための仕組みです。
  • NTFSは「NT File System」の略です。
  • ext4は「fourth extended file system」の略です。

WSL2は仮想マシンによって「完全なLinux」を動作できる

WSL1とWSL2の違い

WSL1WSL2の最も大きな違いは、WSL2では、仮想マシンによって「完全なLinux」を動作させることができる点です。

WSL1では、「完全なLinux」は動作していません。WSL1では、Linuxカーネルではなく、「LxCore.sys/Lxss.sys」というNTカーネルドライバがLinuxの実行環境を作っています。NTカーネルドライバがLinuxプログラムからのシステムコール(APIやファイルアクセス要求など)をWindows APIに変更しています。この仕組みがLinuxとしては不完全で、できることに制限がありました。また、うまく動かないソフトウェアもありました。例えば、DockerはWSL1では動作しませんでした。

一方、WSL2では、Hyper-Vと呼ばれるパイパーバイザー上の「軽量ユーティリティ仮想マシン(Light Weight utility Virtual)」でLinuxカーネルそのものが実行されています。そのため、WSL2を使うことで、Windows上で「完全なLinux」が動作するようになりました。また、WSL1で動作しなかったDockerが、WSL2では動作できるようになっています。

また、WSL1はWindow上で動作していたため、IPアドレスはWindowsと共有していました。一方、WSL2では仮想化によって仮想NIC(Network Interface Card)が作成されることで、Windowsとは別のIPアドレスを割り当てることが可能になりました。

WSL2はWSL1と比べて、パフォーマンス(動作や起動速度など)が向上しています。また、WSL2では仮想マシンによって「完全なLinux」を動作させることが可能になっています。そのため、WSL1とWSL2のどちらを使うべきか迷ったら、基本的にはWSL2を使うとよいでしょう。

補足

  • 仮想NICは「仮想ネットワークアダプタ」と呼ばれることもあります。
  • 仮想NICはコンピュータ上で仮想的に作られるネットワーク接続の機能です。実際の物理的なNICと同じように機能します。

本記事のまとめ

この記事では『WSL(Windows Subsystem for Linux)』について、以下の内容を説明しました。

  1. WSLとは
  2. WSL1とWSL2の違い

お読み頂きありがとうございました。