Windows Subsystem for Linux 2発表

マイクロソフトがbuild 2019でWindows Subsystem for Linux 2を発表しました。Windows Subsystem for Linux(以下、WSL)とはWindowsの中でLinuxのシェルやプログラムを動かす仕組みです。Windows 10より実装された機能で、開発はLinuxディストリピューションのUbuntuのカノニカル社も参画しています。仕組みはLinuxのシステムコールをWindowsのシステムコールに変換して実行させているものです。LinuxからWindows側のファイルシステムにも直接アクセスができます。WSLはこの変換処理を行う部分でLinux distributionそのものはWSLインストール後にMicrosoftストアからダウンロードしてインストールします。UbuntuだけではなくSuseなども使えます。

マイクロソフトがWSLを開発した背景には、UNIXには豊富な開発系のツールが用意されていることが大きな要因の一つと言えるでしょう。そういう意味ではMacにアドバンテージがありました。マイクロソフトとしてはWindowsにも同様の環境を開発者に提供しようとしたのでしょう。開始初者の期待も大きくWSLでは多くのフィードバックが寄せられました。その数はハリーポッターの書籍数にも例えられていました。特に多かった要望が「ファイルシステムアクセスのパフォーマンス向上」と「互換性の向上」でした。

マイクロソフトの開発者カンファレンスBuild 2019で、第二世代のWSLであるWindows Subsystems for Linux 2(以下、WSL2)が発表されました。

WSL2では、従来のWSLと違ってハイパーバイザ方式の仮想マシン上でLinuxを動かします。更にLinuxはマイクロソフトがカスタムビルドしたカーネルを標準搭載します。マイクロソフトとしてはAzure Sphereに搭載したLinuxに続くLinuxディストリビューションと言えるでしょう。

WSL2の速度向上では、Surface Laptopを使ってデモが行なわれました。速度向上では、

  • gitクローン作成 2.5倍
  • npm(パッケージのインストール) 4.7倍
  • cmake 3.1倍

というパフォーマンスを向上させています。

また、互換性の向上ではWSLで実行すると落ちてしまうシステムコールもWSL2では正常に処理させているデモを行いました。ここは仮想マシンでLinuxを動かしているので、それは互換性が高くなっていると考えられます。

マイクロソフトのLinuxのカーネルは最新の安定版のVer.4.19を使っています。もちろんオープンソースで公開しています。

WSL2で採用している仮想マシンは環境はHyper-Vなどの従来の仮想マシンとは異なります。今までの仮想マシンはOSと独立しており、起動に時間がかかり、メモリを多く消費しました。WSL2はOSに統合され、起動が早く(1秒以内)、メモリのフットプリントも少ない設計となっています。Windows側のファイルシステムにも相互にアクセスでき、WSL2のために用意された仮想マシン環境と言えるでしょう。

現在はテストの準備が進められており、Windows 10 Insider Previewで2019年6月末に提供される見込みです。