Microsoft公式、WindowsでLinux GUIアプリを実行する「WSLg」をレビュー
Windows 10でLinux GUIアプリケーション対応、プレビュー版登場
現在のWindows 10にはLinuxバイナリを実行する機能が搭載されており、Microsoft StoreからLinuxディストリビューションをインストールして使用できる。これを支えている技術がWSL (Windows Subsystem for Linux)だ。WSL 1とWSL 2という、異なる仕組みの実装系が存在しているが、今後はWSL 2のみが使われていくという認識でいればよいと思う。
Linuxがそのまま利用できるのは便利だが、これまでWSLはGUIアプリケーションをサポートしてこなかった。実行するための環境を自分でセットアップすれば、GUIアプリケーションを動作させることも可能だったが、正直なところ簡単とはいえず、パフォーマンスも満足のいくものではなかった。
Microsoftはこの点に関し、1年前のBUILD 2020で、WSLにおいてGUIアプリケーションを動作させるという目標を発表した。発表から1年経ってしまったが、待望のプレビュー版が登場した。Microsoftはこの機能に「WSLg」というニックネームを付けたようだ。動作の様子は次のページで確認できる。
プレビュー版だが出来は上々だ。GUIアプリケーションとして動作するのみならず、オーディオおよびマイクもサポートされており、さらにGPUを使ったグラフィックアクセラレーションもサポートされている。これは3Dグラフィック系のアプリケーションも実用的な速度で使用できることを意味している。
プレビュー版を試す方法
今回発表された最初のプレビュー版は「Windows 10 Insiders Preview Build 21364」およびこれ以降のバージョンで試せるとされている。該当する開発版のWindows 10を使用している場合、次のコマンドを実行するだけでWSLgの機能が有効になるとされている。
WSLgの機能を有効化する方法
wsl --update
まだWSLを利用していない場合は、次のコマンドでWSLの有効化とWSLgのインストールが自動的に行われるとされている。
WSLの有効化とWSLgの有効化
wsl --install
WSLgのセットアップなどの詳細情報は次のページにまとまっている。
MicrosoftはWSLgの機能を試す前に、可能な限りGPUコンピュートサポート機能を有効化することを推奨している。GPUコンピュートサポート機能を使用することでよりパフォーマンスを得ることができる。
WLSgがリテール版Windows 10まで落ちてくるにはまだ時間がかかるだろう。しかし、プレビュー版が利用できるようになったのは大きい。それほど遠くない段階でリテール版のWindows 10でLinuxのGUIアプリケーションを利用可能になりそうだ。
WSLgはこんな時に役に立つ
WSLgはWindows 10でLinuxのGUIアプリケーションを実行する機能だ。Windows 10で使うという観点からは、特に次のようなシーンでの活用が期待できる。
WSLgの利用シーンはリテール版まで降りてきて、多くのユーザーが使うようになるとさらに増えることが予想される。開発者が予想もしていなかった活用方法が普及するかもしれない。WSLgを取り巻く状況がどのように変わっていくのか、今後の展開が楽しみだ。
Xサーバはどこへ行ったのか、答えはMicrosoftの「CBL-Marinerディストリビューション」
LinuxでGUIアプリケーションを実行することに詳しいユーザーやエンジニアは、Xサーバはいったいどうなっているのかが気になるだろう。LinuxではXサーバがGUIアプリケーション実行の重要なポジションを担っている。通常、最初にXサーバを起動する必要があるのだ。
WSLgは技術的にはMicrosoftが開発した「CBL-Mariner」と呼ばれるLinuxディストリビューションが背後で動いている、というのがポイントとなっている。もともとCBL-MarinerはクラウドインフラストラクチャやMicrosoftが内部で使用するLinuxディストリビューションとして開発を行っているものだ。今回、このディストリビューションがWSLでGUIアプリケーションを実行するために拡張され、使われている。
WSL内部でGUIアプリケーションの実行が試みられると、Wayland、Xサーバ、Pulse Audio Serverおよびそのほか動作するために必要となる機能などを含んだCBL-Marinerディストリビューションが自動的に起動され、必要なサービスが動作する。このシステムディストリビューションのおかげでLinuxのGUIアプリケーションが動作するのだ。
このシステムディストリビューションはGUIアプリケーションが終了し、WSLディストリビューションが終了されると、自動的に終わる。MicrosoftはLinux GUIアプリケーションがシームレスに動作することを意図しているため、wsl -l -vなどのコマンドを実行してもこのシステムディストリビューションは一覧に表示されない仕掛けになっている。
GUIアプリケーションに関するサービスを「CBL-Marinerディストリビューション」という別のLinuxディストリビューションに分離したことで、Microsoft StoreからインストールするLinuxディストリビューションの種類によらず、一貫したユーザーエクスペリエンスを提供できるという利点があるほか、開発・メンテナンス、更新の面でも扱いやすくなるとされている。
WSLgの技術的なポイント
WSLgの技術的なポイントや、どのような考え方で現在のソフトウェア構成を選択したのか、オープンソース化した理由や、GUIアクセラレーションの詳細などは、次のページに詳しい説明が掲載されている。
重要なポイントをざっくりまとめると次のようになる。
Microsoftは今後しばらくの間WSLgを積極的に開発することを計画している。最初は主に互換性の向上やパフォーマンスの向上、バグの修正などが取り組まれるものと見られる。