WSL2におけるGUI表示
WSL2のGraphics対応は「WSLG」と呼ばれており、大きくアプリからのGPU利用(GPUユーザーモードドライバーなど)と、Compositorの2つの仕組みが必要になる。
先にGPUコンピューティングがプレビューされたことから、半分は完成している状態と言える。ただし、Microsoftの文書によれば、WSL2のGPUコンピューティングにはWDDM v2.9が必要だという。WDDMとは「Windows Device Driver Model」の略で、デバイスドライバーの仕様だ。現在一般配布されているWindows 10 Ver.2004、および20H2は、WDDM v2.7までしか対応していない。
そこでGPUコンピューティングを利用するには、Windows 10の機能アップデートを待つ必要がある。GPUコンピューティングのプレビューが始まったのは、Windows Insider ProgramのDev Channelで配布されたBuild 20150から。内部では「Iron」と呼ばれている世代のWindows 10だ。おそらく、今年春の機能アップデートとなるWindows 10 Ver.21H1から導入されるのではないかと考えられる。
しかし、もう一方のCompositor側は、まだプレビューも始まっていない。そろそろ21H1のプレビューがBeta Channelで開始されることを考えると、GUI対応は20H2以降になってしまうかもしれない。
Microsoftは、現在WSL2側にGUI描画機能を持たせようとしている。しかしLinuxでは、X Window System(X11)やWaylandといった描画システムが一般的だ。かつてのLinuxのGUIは、すべてX11に対応していたが、最近ではWaylandを使うものが多い。また、Waylandは、X11(X Server)と互換性を持たせることが可能だ。このため、WSLGでは、このWayland(正確にはWaylandプロジェクトのリファレンス実装であるWeston)を用いる。
このときにWin32側との連携には、Hyper-V同様「RDP」を使う予定だ。
RDPとは、「Remote Desktop Protocol」の略。つまり、ネットワークなどを介して、デスクトップやウィンドウをほかのマシンに表示する仕組みだ。これは、Hyper-VでもゲストOSのデスクトップ表示に利用されている。当初はデスクトップ全体を通信を経由して表示するものだったが、現在ではアプリケーションウィンドウだけをリモート側のデスクトップ内で動作させる仕組みが追加されている。
これをMicrosoftは「RAIL」(Remote App Integrated Locally)と呼んでいる。RAILでは、ウィンドウが表示されるデスクトップ側の情報(モニターの数や解像度、解像度の変更など)をリモート側に伝達する仕組みがあり、リモート側のアプリがローカルアプリと同じように振る舞うことが可能だ。
ローカル環境内とはいえ、RDP経由でGUIアプリケーションがちゃんとしたパフォーマンスで動作するのか? と疑問に思われるだろう。次回は、そのあたりを解説したい。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ