全4439文字
PR

約6年ぶりのWindows新版「Windows 11」が登場した。Linuxとの連携が強化されているのが特徴だ。Windows 11で具体的にLinuxをどう生かしていくかを解説する。

 「WSLg」はLinuxのGUIアプリを動かす仕組みです。WSLgがどんな仕組みでGUIアプリの動作を実現しているかを簡単に押さえておきましょう。WSLgの仕組みについては、公式プロジェクトのWebページ(https://github.com/microsoft/wslg)で図を使って説明されています。それを筆者が簡略化したものを図11に示します。

図11 WSLgの仕組み
図11 WSLgの仕組み
公式プロジェクトのWebページ内で「WSLg Architecture Overview」として紹介されている仕組みの図を筆者が簡略化したもの。
[画像のクリックで拡大表示]

 WSLgでは、WSLで動かすUbuntuなどの通常のLinuxディストリビューション環境(「ユーザーディストロ」と呼ぶ)を起動するときに、ディスプレイサーバーを動かす専用の小さなLinuxディストリビューション環境(「システムディストロ」と呼ぶ)を、ペアで起動します。

 ユーザーディストロとシステムディストロは、同一のLinuxカーネル上で一種のコンテナー環境として動作するため、同一マシン内で使われる通信方法であるUNIXドメインソケットで通信できます。

 LinuxのGUIでは、XまたはWaylandというグラフィックス描画のシステムが使われています。いずれも、描画を行うディスプレイサーバーがあり、GUIアプリからディスプレイサーバーに描画命令を送ることで描画が実行されるという方式です。

 WSLgのシステムディストロの内部では、このXとWaylandのディスプレイサーバーが動いています。ユーザーディストロは、デフォルトで描画先としてこのシステムディストロの描画サーバーを使うように設定されています。これにより、GUIアプリの画面描画では、システムディストロの描画命令が送られます。

 XとWaylandは異なる描画方式です。システムディストロではWaylandのディスプレイサーバーである「Weston」が動いています。その上で、Xの描画命令については「XWayland」というプログラムがいったん受け取り、Waylandの描画命令に変換してWestonに送るようになっています。

 サウンドについても画面と同様に、Ubuntuなどで使われているPulseAudioサーバーがシステムディストロ内で動いています。アプリからの音声出力はこのPulseAudioを介して再生されます。

 Westonは、実際の描画先を「バックエンド」という形で切り替えられます。システムディストロのWestonでは、バックエンドとして「RDP backend」が組み込まれています。これは、Windowsのリモートデスクトップ用プロトコルであるRDP(Remote Desktop Protocol)を描画先とするものです。最終的に、Windows環境で動いているRDP クライアントを経由してWindowsデスクトップで描画が実行されます。