Microsoftは、WindowsでのLinuxGUIアプリケーションの起動のテストを開始しました。これは、同社が何ヶ月にもわたって開発してきたWSL2(Windows Subsystem for Linux)サブシステムに基づいて実装されています。アプリケーションは、スタートメニューへのショートカットの配置、サウンドの再生、マイクからの録音、ハードウェアアクセラレーションOpenGLなど、Windowsデスクトップと完全に統合されていることに注意してください。タスクバーでのソフトウェアに関する情報の表示も実装されており、Alt + Tabでプログラムを切り替えることができ、LinuxアプリケーションとWindowsアプリケーション間のデータをクリップボードを使用してコピーできます。
Linuxアプリケーションインターフェイスは、RAIL-Shellコンポジットマネージャーを使用してメインのWindowsデスクトップに表示されます。Waylandプロトコルを使用し、Westonコードベースに基づいています。出力は、RDP-RAIL(RDP Remote Application Integrated Locally)バックエンドを介して実装されます。これは、デスクトップをレンダリングしませんが、メインのWindowsデスクトップに表示されるようにRDPRAILチャネルを介して個々のサーフェスをリダイレクトします。X11アプリケーションはXWaylandを使用して実行されます。
その他の情報
同社は、PulseAudioサーバーを使用して、興味深い方法でサウンドを出力しています。サーバーは、RDPプロトコルを介してオペレーティングシステムと対話します(rdp-sinkプラグインはサウンド出力に使用され、rdp-sourceは入力に使用されます)。このサーバーとXWaylandは、一般的なミニディストリビューションWSLGdに収容されています。グラフィックサブシステムとサウンドサブシステムの両方を抽象化するためのコンポーネントが含まれています。
これはすべて、Microsoftがクラウドインフラストラクチャで使用しているCBL-MarinerLinuxディストリビューションに基づいています。ミニディストリビューションは、仮想化メカニズムを使用して起動されます。同時に、Linuxゲスト環境とWindowsホスト間の共有アクセスは、virtio-fsを使用して実装されます。
開発者は、WSLGdLinux環境で実行されるRDPサーバーとしてFreeRDPを選択しました。同じタスクで、WidnowsOSはmstscを使用します。WSLDVCPluginハンドラーは、使用可能なグラフィカルLinuxアプリケーションを識別し、それらをWindowsメニューに表示するために使用されます。Wayland、X11、PulseAudioのリクエストを処理するソケットを提供することで、WLS2環境でLinuxディストリビューションと対話できます。WSLGd用に準備されたバインディングは、MITライセンスの下でライセンスされています。
新機能にアクセスするにはどうすればよいですか?
これを行うには、少なくともバージョン21362のWindows 10 Insider Previewをインストールする必要があります。開発者は、近い将来、Windowsの通常版でWSLGdをインストールするのに十分であり、ユーザーはInsiderPreviewプログラムに参加する必要がないことを約束します。 。
たとえば、Ubuntuの場合は「wsl--install」コマンドを使用してWSLGdをインストールします-「wsl--install-dUbuntu」。既存のWSL2環境の場合、WSLGdは「wsl--update」コマンドを介してインストールされます(Linuxカーネルを使用するWSL2環境のみがサポートされ、変換の呼び出しはサポートされません)。グラフィカルアプリケーションは、配布キットの通常のパッケージマネージャーを介してインストールされます。
WSLGdは2Dグラフィックスのみをサポートします。 OpenGLに基づく3Dグラフィックスが必要な場合は、別のメカニズムである仮想GPU(vGPU)が使用されます。そのためのドライバーは、AMD、 Intel、 NVIDIAチップ用の3つのバージョンで提供されます ..。グラフィックの操作は、DirectX 12上にOpenGLを実装したレイヤーを提供することによって実行されます。レイヤーは、Mesa 21.0の主要部分に含まれるd3d12ドライバーの形式で設計され、Collaboraと共同で開発されています。
Linuxでは、仮想GPUは/ dev / dxgデバイスに実装され、WindowsカーネルのWindows Display Driver Model(WDDM)D3DKMTを模倣するサービスが提供されます。このシステムでは、ドライバーはVMバスを介して物理ビデオチップへの接続を確立します。LinuxアプリケーションはネイティブWindowsアプリケーションと同じレベルのGPUアクセスを持ち、WindowsとLinuxの間でリソースを共有することはありません。
IntelGPUを搭載したSurfaceBook Gen3ベースのシステムのパフォーマンステスト中に、Geeks3DGpuTestベンチマークはWindowsで19FPS、Linuxで18FPSを示していることが判明しました。Mesaでは、ソフトウェアレンダリングを使用します-1FPSのみ。
少し背景
WSL2 は、2020年8月20日にWindowsユーザーが利用できるようになりました。これは、Microsoftが累積的な更新プログラムKB4566116をリリースしたときです。
それをインストールした後、Windows 10、バージョン1903およびバージョン1909のユーザーはWSL2のテストを開始し、レビューはほとんど肯定的でした。 8月20日までは、最初のバージョンのWSLのみが使用可能であり、Windows10バージョン2004でのみ使用可能でした。
WSLの最初のバージョンについては、数年前に作業が開始されました。サブシステムに関する公式発表は、Microsoft Build 2016カンファレンスで行われました。発表は短く、数分以内にWSLの機能について話しました。しかし、彼は、会議の主催者が誰かがDDoS攻撃を組織したのではないかとさえ疑ったという発表で、そのような騒ぎとページへのトラフィックの流入を引き起こしました。
それ以来、WSLは大きく進化し、現在、サブシステムは進化し続けています。