先週はWindows 10クラウドPC(仮)に関するウワサや、次期Visual StudioとなるVisual Studio 2022の64ビット化など気になる話題が盛りだくさんだったが、ここではWindows 10 Insider PreviewでサポートしたLinux GUIアプリを取り上げたい。WSL 2(Windows Subsystem for Linux 2)をベースとしてLinux GUIアプリを稼働させる取り組みは、Build 2020で発表済み。本稿執筆時点のアーキテクチャーは下記に示した図のようになっている。

  • WSL 2の一部として稼働する「WSLg」の構造(画像は公式ブログから抜粋)

公式ブログによれば、RDPバックエンドは大幅に拡張。リモートアプリ(Linux GUIアプリ)をローカル(Windows 10)に統合するため、ウィンドウのピクセルデータを描画するRAIL(Remote Application Interface Layer)と、仮想化されたアプリをローカルに統合するVAIL(Virtualized Application Interface Layer、別称GrfxRedirection)をサポート。

RAILはデスクトップ全体ではなく個々のウィンドウでRDP処理を施し、GrfxRedirectionはVM(仮想マシン)の境界を越える転送に最適。GUI描画はXサーバーのXWaylanが担い、上記のRDPバックエンドとオープンソース版RDP実装であるFreeRDPを経由して、Windows 10デスクトップに描画する。

  • テキストエディターの「Gedit」を起動した状態。テキストファイルの文字形式はシフトJISのままなので正しく表示されていないが、アプリの起動確認なので気にしない

WSLgは米国時間2021年4月21日にリリースしたWindows 10 Insider Preview ビルド21364でサポートしているが、そのままでは動作しない。WSLgが利用するMesaドライバー対応のGPU用デバイスドライバーが必要だ(IntelAMDNVIDIA)。筆者もIntel用GPUのデバイスドライバーを更新しようと試してみたが、すでにWindows 10 Insider Previewにインストール済みのデバイスドライバーのほうが新しかった。

  • Windows版などのメンテナー不足が不安視されるフォトレタッチアプリの「GIMP」も画像参照程度であれば問題なく動作する

GitHubの有効化手順を参考に試してみると、当然ながら別途Xサーバーを用意する必要もなければ、定番の環境変数「DISPLAY」の設定も不要で、各種Linux GUIアプリが起動した。今回はIntel Core i7搭載のSurface Pro 7で検証してみたが、動作が極端に遅いということはない。ただ、MicrosoftがGpuTestでベンチマークを取ったところ、Surface Book Gen3のIntel Iris Plusグラフィックスでも18fps程度。リアルタイムな応答を求めるアプリやゲームは厳しいものの、テキストエディターやフォトレタッチアプリであれば十分に動作するだろう。

  ネイティブWin32
(Mesa)
WSLg
(vGPU・Mesa)
WSLg
(Software・Mesa)
NVIDIA RTX 3090 540fps 350fps 4fps
Surface Book Gen3
(Intel・GPU)
19fps 18fps 1fps

Windows 10用アプリとLinux GUIアプリの混合は、アプリ管理に混乱を招く可能性も考えられるが、Windows 10用アプリはWindows Package Manager(winget)の機能拡充に伴って利便性は向上する。Linux GUIアプリも、Linuxディストリビューションが利用するパッケージシステムで一定の管理が可能になるため、さほど混乱は生じないだろう。現在は「動いた」という段階であり、実用レベルには達していないのだが、Microsoftが2021年5月に開催するBuild 2021で詳細が解説され、Windows 10 バージョン22H1あたりで標準機能として実装されるのではないだろうか。

  • インストールしたLinux GUIアプリは、Windows 10の「すべてのアプリ」に加わる