本連載では当面bashの作業効率を高める方法を取り上げる予定だが、ちょっと良いニュースが入ってきたので、今回だけ脱線してそのニュースを取り上げようと思う。そのニュースとはWindows 10でLinuxバイナリを実行するための機能である「WSL2 (Windows Subsystem for Linux version 2)」のアップデートに関するものだ。成果物はまだWindows Insiderの段階だが、そう遠くない段階で一般ユーザーにも届くだろう。今後、この手のアップデートでWSL2の機能強化が図られることになりそうなので、ここ一度取り上げておきたい。

WSLとは

まず、「WSL (Windows Subsystem for Linux)」についておさらいしておこう。現在、Windows 10ではMicrosoft Store経由でLinuxディストリビューションをインストールして利用できるようになっている。これを可能にしている技術がWSLだ。

WSLには実装系が全く異なる「バージョン1」と「バージョン2」という2つの系列が存在している。詳しい説明は省くが、バージョン1はLinuxカーネルのシステムコールをWindowsカーネルのシステムコールに置き換えて実行するレイヤ技術、バージョン2は仮想マシンでLinuxを動作させる仮想化技術だ。どちらにもそれぞれ特徴があるのだが、結論から言えば今後はバージョン2が使われることになる。バージョン1は互換性の目的で提供が続けられるだけで、今後開発は行われないと見られている。

要するに、WSL2はWindows 10に備わる仮想化技術「Hyper-V」を使ってLinuxカーネルを実行することで、LinuxバイナリをLinuxカーネルで実行するための技術だ。WSL1で解決できなかったいくつかの問題を解決しており、今後はこのバージョンが使われることになっている。

Hyper-V上でLinuxディストリビューションをインストールして使うこととの違いは、Hyper-V上で実行されるLinuxカーネルなどはMicrosoftが提供するという点にある。MicrosoftはこのLinuxカーネルをWindows Update経由で提供できるようにし、時々Windows Update経由で新しいバージョンへアップデートすることを表明していた。今回のニュースはこれに関係するものだ。

5.10.16.3 WSL 2 LinuxカーネルをWindows Insiderへ配信

Microsoftは2021年4月16日(米国時間)、「Servicing the Windows Subsystem for Linux (WSL) 2 Linux kernel | Windows Command Line」において、Windows Insiderへ「5.10.16.3 WSL 2 Linuxカーネル」の配信を開始したと伝えた。この新しいカーネルは少なくとも1つの新機能と、1つのバグ修正をもたらすという。説明されている内容は次の通りだ。

  • LUKSディスク暗号化のサポート追加:今回のバージョンでLUKSディスクフォーマットが使用できるようになった。こうしたディスクは「wsl -mount」で使うことができる。また、マウント方法などは「wsl -mount docs」で確認することができる。

◆LUKSディスクフォーマットの使用サンプル - Microsoft提供

$ wsl --mount [disk-id] --bare
$ wsl cryptsetup luksOpen /dev/sdX my-device # Replace /dev/sdX with the block device path in WSL.
$ wsl mkdir /mnt/wsl/my-mountpoint
$ wsl mount /dev/mapper/my-device /mnt/wsl/my-mountpoint
  • クロック同期問題の修正:これまでのバージョンではWSL2インスタンス内の時計がホストマシン上の実際の時間と異なることがあった。新しいカーネルでこの問題が修正されており、時刻が正確になる。


そして注目したいのは、この新機能の配信がWindows Update経由で提供される点にある。

Windows Update経由で新しいWSL2 Linuxカーネルを提供

月に1回提供されるWindows Updateではセキュリティ更新プログラムが配信されているが、実はそれ以外にもOSに依存しない一般的なアップデートの配信が行われている。例えば、Windows Defenderの最新ウイルス定義データや、新しいグラフィックスカードドライバ、サウンドカードドライバの配信などだ。今後、こうしたOSに依存しない配信の対象に、WSL2 Linuxカーネルが含まれるようになる。

Windows Updateでグラフィックカードドライバを更新するサンプル

Microsoftは次の手順で配信へと進めると説明している。

  1. Linux Systems GroupがWSL2 Linuxカーネルの作成を実施
  2. 社内で動作試験を実施
  3. Windows Insiderへ配信
  4. ほかのWindows Insider Ringへ配信を拡大
  5. 最終的に製品版のWindowsへ配信


Microsoftはタイムスケジュールベースで配信を進めている。特に問題がなければ5.10.16.3 WSL 2 Linuxカーネルはそう遠くない段階で一般ユーザーにも配信されるものと見られる。

WSL2のアップデートが本格的に回り出しそう

MicrosoftはWSL1からWSL2への切り替えを発表した段階で、WSL2で利用するLinuxカーネルのアップデートをWindows Update経由で提供することや、wslコマンドでさまざまな操作ができるようにすることなど、今後のプランについても発表した。当初はもっと早い段階でWindows Update経由でWSL2 Linuxカーネルのアップデートが提供されると想定されていたが、なかなかそうはならなかった。

今回のMicrosoftの発表は、Windows Update経由でWSL2 Linuxカーネルのアップデートが始まることを意味しており興味深い。今後は新しいLinuxカーネルをより早いタイミングで利用できるようになる可能性がある。ユーザーはWSL2が使用するLinuxカーネルが更新されたことにすら気が付かないはずだ。ドライバやウイルス定義データが更新されるように、WSL2 Linuxカーネルもいつの間にか新しいバージョンへと置き換わるというわけだ。

WSLはWindowsでLinuxを使うという便利な選択肢を増やした

WSLが登場する前の段階でもWindowsでLinuxを実行する方法はいくつかあった。仮想環境を使う方法が簡単だった。または、PaaSなどのクラウドサービスを使ってLinuxサーバを構築し、そちらにログインして使うという方法もある。どのような方法であれ、使うことはできたのだ。

しかし、WSLの登場によってWindows 10におけるLinux環境の構築は劇的に簡単になった。Microsoft StoreからLinuxディストリビューションを選択してインストールすれば準備が完了するのだ。自分で仮想環境をセットアップする必要もない。

そして今回、ついにWSL2 LinuxカーネルのアップデートまでWindows Update経由で提供されるようになる。Windows 10におけるLinuxの利用はもっと魅力的になる。Windows 10はPCのOSとして広いシェアを持っている。この環境で手間をかけずにLinuxが動作するというのはLinuxのハードルを下げる上で重要だ。