米国時間2020年9月16日から開催された「XDC(X.Org Developers Conference)2020」でMicrosoftは、「X11 and Wayland applications in WSL」と題したセッションにて、WSL 2(Windows Subsystem for Linux 2)を用いてLinux GUIアプリを実行可能にするアーキテクチャーを説明した。まずは下記のスライドをご覧いただきたい。

  • WSLGのアーキテクチャー

「WSLG」は、「Windows Subsystem for Linux GUI」の略記と思われる。WSL上でX ServerおよびWaylandを起動し、Windows 10からはRDP(リモートデスクトッププロトコル)と RAIL/VAILで接続。内部的もサウンドシステムをRDP経由で利用している。

リモートアプリをローカルに統合する「RAIL」(Remote Application Interface Layer)と、仮想化されたアプリをローカルに統合する「VAIL」(Virtualized Application Interface Layer)によって、RDPバックエンドを拡張する仕組みだ。これらの技術はMicrosoft Azureの仮想デスクトップ環境であるWVD(Windows Virtual Desktop)でも用いられているらしく、Microsoftの説明によれば、RAILはネットワーク経由でピクセル描画を転送し、VAILはホスト-ゲスト間に存在する境界を越えるために使用する。

  • VAILおよびRAILの利用例

「X11 and Wayland applications in WSL」セッションでは、Windows 10とX Server/Waylandの描画についても詳しく解説しているので、冒頭のリンクからプレゼンテーション資料を参照していただきたい。興味深いのはLinuxディストリビューションとWindows 10の関係だ。WSL 2は複数のLinuxディストリビューションをインストールできるが、WSLGは隔離されたコンテナのように動作し、Linuxディストリビューションとはソケットによる通信を行う。下図の画像はデモ動画から抜粋したものだが、Linux版Microsoft Teamsによる音声通話も実現していた。

  • Linux版のGIMPやGeditがWindows 10で動作している

セッションの時点では、まだまだパフォーマンスが低かったようで、Waylandアプリは未サポート。開発途上段階ではあるものの、まもなくWindows 10 Insider Previewへの機能実装が始まるとMicrosoftは説明している。膨大なLinux GUIアプリがWindows 10で使用できるその日が楽しみだ。