Microsoft は、Windows 上で Linux GUI アプリケーションを実行するためのサポートのテストを開始しました

Microsoft は、Windows 上で Linux 実行可能ファイルを実行するように設計された WSL2 サブシステム (Windows Subsystem for Linux) に基づく環境で、グラフィカル インターフェイスを使用して Linux アプリケーションを実行する機能のテストを開始すると発表しました。 アプリケーションは、スタート メニューへのショートカットの配置、オーディオ再生、マイク録音、OpenGL ハードウェア アクセラレーション、タスクバーでのプログラムに関する情報の表示、Alt-Tab を使用したプログラム間の切り替え、Windows 間でのデータのコピーなど、メインの Windows デスクトップと完全に統合されています。 - クリップボード経由の Linux プログラム。

Microsoft は、Windows 上で Linux GUI アプリケーションを実行するためのサポートのテストを開始しました

メイン Windows デスクトップへの Linux アプリケーション インターフェイスの出力を整理するには、Wayland プロトコルを使用し、Weston コード ベースに基づいて Microsoft によって開発された RAIL-Shell 複合マネージャーが使用されます。 出力は、RDP-RAIL (RDP Remote Application Integrated Locally) バックエンドを使用して実行されます。これは、コンポジット マネージャーがデスクトップ自体をレンダリングせず、RDP 経由で個々のサーフェス (wl_surface) をリダイレクトするという点で、以前 Weston で利用可能だった RDP バックエンドとは異なります。メイン Windows デスクトップに表示する RAIL チャネル。 XWayland は、X11 アプリケーションを実行するために使用されます。

Microsoft は、Windows 上で Linux GUI アプリケーションを実行するためのサポートのテストを開始しました

オーディオ出力は、PulseAudio サーバーを使用して編成されます。PulseAudio サーバーは、RDP プロトコルを使用して Windows とも対話します (オーディオ出力には rdp-sink プラグインが使用され、入力には rdp-source プラグインが使用されます)。 複合サーバー、XWayland、および PulseAudio は、WSLGd と呼ばれるユニバーサル ミニ ディストリビューションの形式でパッケージ化されています。これには、グラフィックスおよびオーディオ サブシステムを抽象化するためのコンポーネントが含まれており、Microsoft クラウド インフラストラクチャでも使用されている CBL-Mariner Linux ディストリビューションに基づいています。 。 WSLGd は仮想化メカニズムを使用して実行され、virtio-fs は Linux ゲスト環境と Windows ホスト システム間のアクセスを共有するために使用されます。

FreeRDP は WSLGd Linux 環境で起動される RDP サーバーとして使用され、mstsc は Windows 側の RDP クライアントとして機能します。 既存のグラフィカル Linux アプリケーションを検出して Windows メニューに表示するために、WSLDVCPlugin ハンドラーが用意されています。 WSL2 環境にインストールされた Ubuntu、Debian、CenOS などの従来の Linux ディストリビューションでは、WSLGd で実行されるコンポーネントのセットは、Wayland、X11、および PulseAudio プロトコルを使用してリクエストを処理するソケットを提供することによって対話します。 WSLGd 用に用意されたバインディングは、MIT ライセンスに基づいて配布されます。

WSLGd のインストールには、少なくともバージョン 10 の Windows 21362 Insider Preview が必要です。今後、WSLGd は、Insider Preview プログラムに参加しなくても、通常の Windows エディションで利用できるようになります。 WSLGd のインストールは、標準コマンド「wsl —install」 (たとえば、Ubuntu の場合は「wsl —install -d Ubuntu」) を実行することによって実行されます。 既存の WSL2 環境の場合、WSLGd のインストールは「wsl --update」コマンドを使用して行われます (Linux カーネルを使用し、呼び出し変換を行わない WSL2 環境のみがサポートされています)。 グラフィカル アプリケーションは、ディストリビューションの標準パッケージ マネージャーを通じてインストールされます。

WSLGd は 2D グラフィックス出力用のエンジンのみを提供し、OpenGL に基づいて 3D グラフィックスを高速化するために、WSL2 にインストールされているディストリビューションは仮想 GPU (vGPU) の使用を提供します。 WSL 用の vGPU ドライバーは、AMD、Intel、および NVIDIA チップ用に提供されています。 グラフィックス アクセラレーションは、DirectX 12 上に OpenGL を実装したレイヤーを提供することによって提供されます。このレイヤーは d3d12 ドライバーの形式で設計されており、Mesa 21.0 の主要部分に含まれており、Collabora と共同開発されています。

仮想 GPU は、Windows カーネルの WDDM (Windows Display Driver Model) D3DKMT を複製するサービスを備えた /dev/dxg デバイスを使用して Linux に実装されます。 ドライバーは、VM バスを使用して物理 GPU への接続を確立します。 Linux アプリケーションは、Windows と Linux の間でリソースを共有する必要がなく、ネイティブ Windows アプリケーションと同じレベルの GPU アクセスを備えています。 Intel GPU を搭載した Surface Book Gen3 デバイスでのパフォーマンス テストでは、Geeks32D GpuTest テストでは、ネイティブ Win3 環境では 19 FPS、vGPU を使用した Linux 環境では 18 FPS、Mesa でのソフトウェア レンダリングでは 1 FPS を実証しました。



出所: オープンネット.ru

コメントを追加します