Windows 10と11、Microsoftストアでバージョンが異なるWSL
Windows Subsystem for Linux(以下、WSL)は、Windows 10 Ver.1709(RS3)で標準搭載されるようになり、現在に至る。今のWSLには、リリース版Windows 10/11に含まれるもの、Windows Insider Programのプレビュー版に含まれるもの、そしてMicrosoftストアで配布されているプレビュー版がある。

Microsoftストアの「Windows Subsystem for Linux Preview」のページ。System Requirementsには、Windows 10 Version 19041.0以降で利用できるように記載されているが、実際には、インストールができるだけで実行できない
さらに細かく見ていくと、WSLには大きく5つのバージョンがある。
1つは、Windows 10に同梱されているもので、21H2と22H2では同じもののようだ。というのも、「C:\Windows\System32」にあるwsl.exeのファイルバージョンとWSL2用のカーネルバージョンが同一だからだ。もしかすると細かな違いがあるのかもしれないが、はっきりと違いがわかる部分は見当たらなかった。
これに対してWindows 11は21H1と22H2で、wsl.exeのファイルバージョンが異なる。ただし、カーネルのバージョンは同じ。Windows 10とも同じだが、Windows 11のWSLには、Linux GUIアプリの対応(WSLg)などがあるため、WSL自体はWindows 10とは異なっている。
また、Windows Insider ProgramのWindows 11プレビュー版(以下、プレビュー版)だが、Relese Preview ChannelとBeta Channelで配布されているビルドでは、Windows 11の22H2リリース版と同じだった。これに対してDev Channelのものは、カーネルのバージョンは同じだが、wsl.exeのファイルバージョンが異なる。これで合計4つ。あと1つは、Microsoftストア版である。
Microsoftストア版は、Windows 11以降(プレビュー版を含む)にインストールが可能で、どれに入れても同じバージョンになるようだ。
WSLの更新はそもそもどうなっているのか?
Microsoftストアで配布されているWSLは、そもそもプレビューという位置づけである。つまり、WSLの正式版はWindowsに付属しているバージョンになる。Windowsのプレビュー版に関しては、Windows Insider Programのブログでリリースの概要が発表される。
ただ、このところのブログ記事にはWSLに関するものがほとんどない。Windows 11のプレビュー時期までは、ブログとは別にWSLのリリースノートがあり、これがプレビュービルドに連動して変更点を公開していた。しかし、Microsoftストア版プレビューの公開以来、この更新が止まっている。
これらのことから考えると、WSLのプレビューに関しては、Microsoftストア版に移行したと考えられる。Microsoftストア版に関しては、GitHub上に簡単だがリリースノートが用意されている。
このリリースノートを見ると、Microsoftストア版WSLのバージョンに応じてLinuxカーネルのバージョンも上がっており、WSL自体のバージョンとLinuxカーネルのバージョンとの間には一定の関係があると考えられる。つまり、同じカーネルバージョンを使うということは、WSL自体の主要な機能もほぼ同じと考えられる。Windows 10とWindows 11のWSLには、Linux GUIアプリへの対応(WSLg)の有無などの違いがあるが、「設定」→「アプリ」→「インストールされているアプリ」を見ると、WSLとWSLgはパッケージとしては別になっている。
そういう意味では、WSLには、Windows 10版、Windows 11版、Microsoftストア版プレビューの3つがあるとするのが正確そうだ。
Microsoftストア版WSLのバージョンを確認する
Windowsリリース版、プレビュー版に付属するWSLには、WSL自体のバージョンを表示する機能がない。これに対して、Microsoftストア版WSLでは、wsl.exeに「--version」オプションが追加されており、これでWSL自体のバージョンを表示できる。

Windowsに付属のWSLでは、wsl.exeが「--version」オプションに対応しておらず、ヘルプを表示する。ただし、「--status」オプションでは、カーネルのバージョンを表示する。Microsofストア版WSLをインストールすると「--version」(-vと省略可能)が有効になるが、逆に「--status」オプションが簡易表示になる
なお、似たような機能としてWindows付属版WSLには、「--status」がある。ここではLinuxカーネルのバージョンと「Linux用Windowsサブシステムの最終更新日」という表示が出る。ただし、この最終更新日は、最後にLinuxカーネルをアップデートした日付を表示するだけで、WSL自体のバージョンとは何の関係もない。
逆に言えば、Microsoftストア版がインストールされているかどうかは、wsl.exeが「--version」に対応しているかどうかで判定できる。もし、wsl.exeのヘルプ表示が出るようなら、それはMicrosoftストア版WSLではない。Microsoftストア版は、インストールされていれば必ず優先される。
というのも、Microsoftストア版のwsl.exeは、UWPアプリで、アプリ実行エイリアスになっているからである。同名のデスクトップアプリのexeファイルがあっても、デフォルトでは、アプリ実行エイリアスが優先される(「設定」→「アプリ」→「アプリの詳細設定」→「アプリ実行エイリアス」に設定がある)。
Microsoftストア版に関する情報は、GitHubの以下のページにある。
●Releases · microsoft/WSL
https://github.com/microsoft/WSL/releases
これによれば、原稿執筆時点でのプレビューは、Ver.0.70.5である(公開は日本時間の10月26日)。ただし、wsl.exeの「--version」オプションでは、「0.70.5.0」と表示されるようだ。ここから、msixパッケージを使ってのインストールも可能だが、基本的には、Microsoftストアの自動更新で十分である。

この連載の記事
- 第364回 Windowsで仮想ハードディスクを作る&使う
- 第363回 Windowsのタスクスケジューラーをもっと使いこなす
- 第362回 WSL(Windows Subsystem for Linux)がMicrosoftストア版に一本化される
- 第361回 2023年のWindowsは大きな変化がある可能性 まさかのWindows 12が今年出る説!?
- 第360回 Windowsにおけるプログラム実行ルールをさらに詳しく掘り下げる
- 第359回 Windowsでプログラムを実行するルールをあらためて掘り下げる
- 第358回 Windowsにおける環境変数をあらためて整理する
- 第357回 Outlookの25年の歴史を整理する
- 第356回 フォルダーやファイルがリネームできない! ファイルを開いているプロセスを探す方法
- 第355回 Microsoftストア版WSLが正式版になり、Windows 10でも動作可能に
- 第354回 レジストリエディタ以外、reg.exeコマンドやPowerShellからレジストリを操作する
- この連載の一覧へ