このページの本文へ

前へ 1 2 次へ

Windows Info 第258回

LinuxのGUIアプリケーションに対応するWSL2

2021年01月17日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

開発者向けの主要プラットフォームであり続けるために
LinuxのGUIアプリへの対応が必要?

 Microsoftは、WSL2(Windows Subsystem for Linux 2)でLinux GUIアプリケーションに対応することを計画している。以下の動画は昨年9月に開催されたXDC 2020のセッションのものだ。

上のWSLGのデモビデオより。GIMPや裏のウィンドウのタイトルバーはLinux GUIアプリケーションのもので、Windows 10とは明らかに違う。ただ、GIMPなどのアイコンがタスクバーに表示されていることから、Windowsのデスクトップのウィンドウになっていることがわかる

 この改良はかなり大きなものと言える。以前紹介したWSL2のGPUコンピューティングへの対応も(「Windows 10のWSL2からGPUが使えるようになった」)、WSL2内でGPUによる描画(ただし表示ではない)の前段階の一部である。ちょっと大きめの話でもあるので、今回は前後編に分けて紹介していく予定だ。

 ではなぜ、WSL2でLinux GUIアプリケーションに対応しなければならないのだろうか。それはおそらく、ChromebookやPC上の仮想マシン環境(Hyper-Vを含む)などとの関係からだと思われる。

 まず仮想環境では、仮想ディスプレイデバイスを介して、Linuxのデスクトップを表示可能になっている。このためにはOSの「準仮想化」が必要で、Hyper-VやViraualBoxにはグラフィックス表示が可能なLinuxディストリビューションがある。

 さらにChromebookでは、仮想マシン内でLinuxを動作させ、Linux GUIアプリケーションのウィンドウをChrome OSのデスクトップに表示・利用できるようになった。このことでAndroidのアプリ開発はChromebookだけで完結する。GoogleのGUI開発環境であるAndroid StudioがChromebookで動作するわけだ。それ以外にも、EclipseなどLinux上のGUIを持つ開発環境がある。

 Microsoftとしては、Windowsが開発者向けの主要なプラットフォームであることを維持したい。そういう背景もあり、WSL2でLinux GUIアプリケーションを動作させることにしたのだと考えられる。

 もう1つの理由として考えられるのが、Microsoftが進める.NET Frameworkのマルチプラットフォーム化だ。Linuxでも.NET Frameworkのアプリケーションを動作させることを考えると、Windowsと同じGPUコンピューティング(DirectML)やDirectXグラフィックスを利用するアプリケーションが動作することが望ましい。

 物理デバイスの制御に関しては、Linuxの流儀に従うとしても、上位のAPIレベルでは、なんとか互換性を取りたいところ。そのためには、LinuxでもWindowsと同等のグラフィックス、GPU利用APIを動かしたい。そういう方向性でプレビューが開始されたのが、WSL2でGPUコンピューティングを可能にする機能というわけだ。

 この際に導入されたのが、以下の図のようなDirectX GraphicsをWSL2内で動作させる仕組みだ。ただし、現時点でも、MESAなどの対応は完了しておらず、CUDAなどからGPUが利用できるに留まっている。

Microsoftは、WSL2でGPUコンピューティングを可能にしたプレビューを進めている。これは、図左上のCUDAが動作している。CUDAは、WSL2内でDirectX機能を使って実装されており、VMBusを経由してWin32側のDirectX Graphicsカーネル(DXGカーネル)に接続する。Win32側でも、ユーザーモードドライバーなどでGPU機能を使う場合、DXGカーネルと接続し、GPU機能を利用するようになっている

 DirectX Graphicsでは、対応GUIアプリケーションは、DirectX GraphicsやOpenGLなどを使って自身のメモリ領域(バッファ)に描画指示や描画リソース(ビットマップなど)を置いて、GPUに処理させる。GPUコンピューティングではほぼ同じ仕組みだ。このとき、DirectXのユーザーモードドライバーを利用する。WPFなどの抽象度の高いグラフィックス描画でも下の部分は同じ。最終的にアプリのプロセスごとにウィンドウ内の描画を作る。

 Windows 10ではDesktop Window Manager(DWM)が合成してデスクトップに表示する。ここにもGPUが使われている。こうした構造をCompositorあるいはComposit形式という。

 そもそもCompositorを使ってデスクトップを「合成」するというのは2000年以降に普及し始めた。かつては、ウィンドウマネージャーがアプリケーションに通知(隠れていたウィンドウの一部が表示されたなどのイベント)してウィンドウを直接描画させていたが、アプリケーションにより、描画が遅い、あるいは描画をきちんとやらないといったことで、デスクトップ全体の応答速度が犠牲になったり、不完全なウィンドウのままになることがあった。

 ウィンドウ内の描画が「完了」したかどうかは、アプリケーションにしかわからないためだ。そしてウィンドウマネージャー側は、描画の終了を待たねばならず、他のウィンドウを更新できなくなる。これが全体の足を引っ張ることがあった。

 そこで、ほかに影響が出ないようにアプリケーションプロセスには自身のメモリなどに置いたバッファに描画をさせ、ウィンドウマネージャーは、描画が終了したものを合成して表示するようになった。こうすることでアプリケーション側がどう振る舞おうとも、自分の中で完結している処理なので、デスクトップの表示に影響を与えない。GPUを利用した描画は、アプリケーション側でユーザーモードドライバーなどを使って自分のところで処理するようになった。

 アプリケーションの描画が問題でデスクトップ全体の速度が落ちてしまう問題は、Windowsにもあり、Windows VistaでDWMという形でCompositorが搭載された。Windows Vista以後、ウィンドウタイトルに「応答なし」と表示されるのをよく見かけるようになったのはこうした事情による。Windows Vistaからは、一定時間内(5秒)にDWMからのイベントに応答しないウィンドウの代わりに絵を描いただけのGhost Windowを表示し、そのタイトルバーに「応答なし」と表示しているのだ。

前へ 1 2 次へ

カテゴリートップへ

本記事はアフィリエイトプログラムによる収益を得ている場合があります

この連載の記事
1
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 7 7735HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HAJP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 15.3インチ AMD Ryzen™ 7 7735HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動17.4時間 重量1.59kg ルナグレー 83K700HAJP ノートPC
¥154,800
2
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
【整備済み品】富士通 ノートパソコン LIFEBOOK U9310 13.3型FHD(1920x1080) 超軽薄 ノートPC/第10世代 Core i5-10310U@1.7GHz/ 8GB メモリ/高速ストレージ SSD/Webカメラ/WIFI/Type-C/HDMI/win11&MS Office 2019 搭載 ビジネス 在宅勤務向け パソコン (メモリ:8GB/SSD:256GB)
¥35,129
3
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - スカイブルー
Apple 2026 MacBook Air M5チップ搭載13インチノートブック:AIとApple Intelligence、13.6インチLiquid Retinaディスプレイ、16GBユニファイドメモリ、512GB SSDストレージ、12MPセンターフレームカメラ、日本語キーボード、Touch ID - スカイブルー
¥176,567
4
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ AMD Ryzen™ 7 8840HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動12.6時間 重量1.39kg ルナグレー 83K90028JP ノートPC
Lenovo ノートパソコン パソコン IdeaPad Slim 3 14.0インチ AMD Ryzen™ 7 8840HS メモリ16GB SSD512GB MS Office搭載 Windows11 バッテリー駆動12.6時間 重量1.39kg ルナグレー 83K90028JP ノートPC
¥109,800
5
【Amazon.co.jp限定】ASUS ノートパソコン Vivobook 15 M1502NAQ 15.6インチ AMD Ryzen 7 170 メモリ16GB SSD 512GB Windows 11 重量1.7kg Wi-Fi 6E クワイエットブルー M1502NAQ-R7165BUW
【Amazon.co.jp限定】ASUS ノートパソコン Vivobook 15 M1502NAQ 15.6インチ AMD Ryzen 7 170 メモリ16GB SSD 512GB Windows 11 重量1.7kg Wi-Fi 6E クワイエットブルー M1502NAQ-R7165BUW
¥109,800

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
KIOXIA(キオクシア) 旧東芝メモリ microSD 128GB UHS-I Class10 (最大読出速度100MB/s) Nintendo Switch動作確認済 国内サポート正規品 メーカー保証5年 KLMEA128G
¥2,680
2
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
3
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥844
4
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥1,899
7
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
NIMASO ガラスフィルム iPad 第11世代(A16) 2025用/iPad 10.9インチ 第10世代 2022用 衝撃吸収 強化 ガラス 保護フィルム 指紋防止 ガイド枠付き NTB22I574
¥1,599
8
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥1,616
9
Anker Zolo USB-C & USB-A ケーブル 1.0m ブラック USB-IF認証 高耐久ナイロン素材採用 iPhone 17 / 16 / 15 / Galaxy Google Pixel 各種対応
Anker Zolo USB-C & USB-A ケーブル 1.0m ブラック USB-IF認証 高耐久ナイロン素材採用 iPhone 17 / 16 / 15 / Galaxy Google Pixel 各種対応
¥990
10
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
KIOXIA(キオクシア)【日本製】SDカード 128GB SDXC UHS-I Class10 読出速度100MB/s 国内正規品 メーカー保証5年 KLNEA128G
¥3,139

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン