WSL 2、Windows 10の2020年春の大規模アップデートに収録決定

少し前にここでWindows 10の2020年春の大規模アップデートに収録される可能性がある新機能群をザックリまとめてみました。実はその中に書き漏らしていた新機能があります。

それがWSL 2。現在テストが継続されているプレビュー版の中ではかなり早い時期から評価が始まっていました。

すっかり失念していて新機能リストの中に盛り込むのを忘れいていたのですが、この機能が2020年春の大規模アップデートに収録されることが決定しました。米マイクロソフトが公式に表明しています。

WSL 2の特徴

WSL 2は既存のWSL(以降WSL 1と表記)の弱点を潰すために開発が行なわれています。

WSL 1はとてもユニークな構造を取るWindows上でLinuxの実行環境を作るための仕組みです。WSL 1ではLinuxのOSレベルの機能=システムコール(=API)をWindows側のAPIに読み替えて実行する方式を採っています。

これによってLinuxシステムを動かすバーチャルマシンなどを用意する必要がなく、非常に軽量にLinuxシステムの実行環境を作ることができるのです。

ただし弱点も存在していて、システムコールをWindowsのAPIに読み替えているため、システムコールレベルまで掘り起こすと機能的な互換性が低いのです。また、性能面でもファイルアクセスなどでLinuxネイティブなシステムに大きく劣るウィークポイントもありました。

WSL 2はこのようなWSL 1の弱点を克服するために開発されました。WSL 2では専用の軽量・コンパクトなVMを使って完全なLinuxシステムをWindows 10上で動作させます。

このためほぼ完全な互換性を確保できますし性能面の弱点も解消します。

弱点もある

WSL 2も完全ではなく、一部WSL 1に劣る部分も存在します。

コンパクトとは言えVMを作らないといけませんので、WSL 2はWSL 1よりもメモリやCPU資源を余分に消費します。ザックリ言えばWSL 1よりも重い、と言うことになります。

また、VMを生成してから起動するため最初の起動にWSL 1よりも時間がかかります。

WSL 1,2は当面共存

上に書いたようにWSL 1と2にはそれぞれ長所と短所があって、特徴が相反しています。

つまり、システムコールレベルの機能を必要としなければWSL 1でも十分、とも考えられるわけです。

このため当面WSL 1とWSL 2は併存してWindows 10に搭載され続ける予定です。ユーザーそれぞれ必要な機能に合わせてどちらを使うかを判断する形になります。

とりあえずOSとしてのLinuxが必要、程度のレベルであれば、WSL 1のままでも行けるケースが多いでしょう。逆にLinuxベースのアプリケーションソフトの開発を行ないたい、といった場合にはWSL 2化を行なってシステムコールレベルの互換性が必要になるでしょう。

Home版でもいけるはず

WSL 2で内部的に実行される仮想マシンではHyper-Vの仕組みが使われます。

本来この機能はProエディション以上でしか有効になっていないはずですが、WSL 2はHome版でも使えると思われます。(プレビュー版では動いている)

このためHyper-Vの機能のうちWSL 2に必要な部分のみをHome版でも開放する形になるのかもしれません。

ただ、この辺りは正式版への実装の際に変更される可能性もあるでしょう。

また、Linuxのディストリビューション自体はWSL側に添付されることはなくなるようです。WSL 2セットアップ後にLinxuディストリビューションを別に導入する操作が必要になるとのことです。