今度のWSL 2は「ホンモノ」のLinux。システムコール100%互換も

WSLはWindows 10の中でLinuxそのものを動かせる機能です。これはLinuxの機能をWindows側の機能でエミュレートしてそれをなぞるように動かす仕組みになっていたようです。

従来のWSLではLinuxのかなり多くの機能をそのまま使うことが出来るところまで煮詰められていましたが、一部不完全な部分も残していました。それがLinuxシステムがアプリに提供するAPIにあたる「システムコール」と呼ばれるものです。

これの100%互換は実現できていませんでした。

マイクロソフトは先日こういったWSLの不完全な部分を解消することを可能にした「WSL 2」の開発を発表しました。こちらは今度は「完全な」Linuxそのもので、システムコールの100%互換も可能になります。

WSL 2はコンパクトな仮想マシンに

WSL 2では完全なLinuxを実現するために既存のWSL(以降WSL 1)とは違う仕組みを使います。

WSL 2は仮想マシンを使って完全なLinuxをWindows 10の中で動かす形になります。WSL 2では完全なLinuxそのものの環境を持つことになる訳です。

通常は仮想マシンを十分な操作感で動作させるためには特に十分なメモリ(4GBとか)を必要とするため、その他の環境に影響を与える可能性が高くなります。

ですがWSL 2はそういった影響を最小限に留めるため、コンパクトで軽量な仮想マシンを準備するようです。これによりホストOSとなるWindows 10側へ影響を小さく抑え、かつWSL 2自体の起動も高速に行えるようになる見込みです。

一番安全なLinux環境になる?

WSL 2はWindows Updateの仕組みを利用してメンテナンスが行なわれます。Linuxの各種オプションのコンポーネントやLinuxカーネル自体なども通常は自動でアップデートが行なわれるようになります。

Linuxは通常こういったメンテナンスはサーバ管理者が手動で行なう仕組みになってて、それなりの手間がかかりかつ、マシンをセキュリティ面で万全な状態に保つことはユーザー自体に任されています。

WSL 2ではその面倒なメンテ作業がほぼ自動化されるため、セキュリティリスクをかなり小さくすることが出来ます。

もしかしたら一番安全なLinux環境と呼べる機能になるかもしれません。

システムコール100%互換

そして一番大きいかもしれないのがこちらの「システムコール100%互換」を実現できることでしょうか。

従来はLinuxのシステムコールをWindows 10側のAPIで「まねる」やり方で「それっぽく動かし」ている状態でしたので、どうしてもカバーしきれない部分は残っていました。WSL 2はホンモノのLinuxが起動する形になりますので、この問題は基本すべて解消します。

今までWSLでは動かせなかったアプリやユーティリティも今度はきちんと動くことが期待できます。

WSL 2はHome版でもOK

WSL 2の動作では仮想マシンの環境になるHyper-Vの機能が一部使われます。本来Hyper-VはWindows 10のPro版以上の機能です。ですが、WSL 2はHome版でも使えるようになることが既にマイクロソフトの公式SNSで宣言されています。

WSL 2リリースの際にはHome版向けにHyper-Vのサブセット、WSL 2動作に必須となる機能だけをHome版にリリースすることになるようです。

また、WSL 2はLinuxのファイルシステムで動作しますが、WSL 2側のファイルをWindows 10側からも操作できる機能が提供されることも決まっています。WSL 1同様の親和性を期待したいところです。