Microsoft rozpoczął testowanie wsparcia dla uruchamiania aplikacji GUI Linux w systemie Windows

Firma Microsoft ogłosiła rozpoczęcie testów możliwości uruchamiania aplikacji Linux z interfejsem graficznym w środowiskach opartych na subsystemie WSL2 (Windows Subsystem for Linux), który ma na celu uruchamianie plików wykonywalnych Linux w systemie Windows. Aplikacje są w pełni zintegrowane z głównym pulpitem Windows, w tym obsługują umieszczanie skrótów w menu Start, odtwarzanie dźwięku, nagrywanie z mikrofonu, sprzętowe przyspieszanie OpenGL, wyświetlanie informacji o programach na pasku zadań, przełączanie między programami za pomocą Alt-Tab oraz kopiowanie danych między programami Windows i Linux przez schowek.

Microsoft rozpoczął testowanie wsparcia dla uruchamiania aplikacji GUI Linux w systemie Windows

Do organizacji wyświetlania interfejsu aplikacji Linux na głównym pulpicie Windows został wykorzystany stworzony przez Microsoft menedżer kompozycji RAIL-Shell, korzystający z protokołu Wayland i oparty na bazie kodu Weston. Wyświetlanie odbywa się za pomocą backendu RDP-RAIL (RDP Remote Application Integrated Locally), który różni się od wcześniej dostępnego w Weston backendu RDP tym, że menedżer kompozycji nie wykonuje samodzielnie renderowania pulpitu, lecz przekazuje poszczególne powierzchnie (wl_surface) przez kanał RDP RAIL do wyświetlenia na głównym pulpicie Windows. Do uruchamiania aplikacji X11 wykorzystywany jest XWayland.

Microsoft rozpoczął testowanie wsparcia dla uruchamiania aplikacji GUI Linux w systemie Windows

Wyjście dźwięku zorganizowane jest z wykorzystaniem serwera PulseAudio, który również współpracuje z Windows przy użyciu protokołu RDP (do wyjścia dźwięku wykorzystywana jest wtyczka rdp-sink, a do wejścia — rdp-source). Serwer kompozycji, XWayland oraz PulseAudio są zapakowane w formie uniwersalnego mini-dystrybucji WSLGd, zawierającego komponenty do abstrahowania graficznego i dźwiękowego systemu i opartego na dystrybucji CBL-Mariner Linux, również wykorzystywanej w infrastrukturze chmurowej Microsoft. WSLGd uruchamiane jest z wykorzystaniem mechanizmów wirtualizacji, a do współdzielenia danych między gościnnym środowiskiem Linux a systemem operacyjnym Windows wykorzystywane jest virtio-fs.

Jako serwer RDP, uruchamianego w środowisku Linux WSLG, używane jest FreeRDP, a po stronie Windows klientem RDP jest mstsc. Aby zidentyfikować dostępne graficzne aplikacje Linux oraz wyświetlić je w menu Windows, przygotowano obsługę WSLDVCPlugin. Z zainstalowanymi w środowisku WSL2 standardowymi dystrybucjami Linux, takimi jak Ubuntu, Debian i CenOS, zestaw komponentów działający w WSLG komunikuje się poprzez udostępnianie gniazd, które obsługują zapytania za pomocą protokołów Wayland, X11 i PulseAudio. Przygotowane dla WSLG warstwy są dystrybuowane na licencji MIT.

Aby zainstalować WSLG, wymagane jest posiadanie Windows 10 Insider Preview w wersji co najmniej 21362. W przyszłości możliwość instalacji WSLG będzie udostępniona także dla standardowych wydań Windows, bez konieczności uczestnictwa w programie Insider Preview. Instalacja WSLG odbywa się za pomocą standardowej komendy „wsl —install”, na przykład dla Ubuntu — „wsl —install -d Ubuntu”. Dla istniejących środowisk WSL2 instalacja WSLG przeprowadzana jest poprzez komendę „wsl —update” (wspierane są tylko środowiska WSL2, w których stosowane jest jądro Linux, a nie translacja wywołań). Aplikacje graficzne instalowane są przez standardowy menedżer pakietów dystrybucji.

WSLG zapewnia jedynie mechanizmy do wyjścia grafiki 2D, a dla przyspieszenia grafiki 3D opartej na OpenGL w instalowanych w WSL2 dystrybucjach sugeruje się użycie wirtualnego GPU (vGPU). Sterowniki vGPU dla WSL są dostarczane dla układów AMD, Intel i NVIDIA. Przyspieszenie grafiki zapewniane jest poprzez dostarczenie warstwy z wdrożeniem OpenGL na bazie DirectX 12. Warstwa ta została opracowana jako sterownik d3d12, wchodzący w skład Mesa 21.0 i rozwijany wspólnie z firmą Collabora.

Praca wirtualnego GPU realizowana jest w Linux za pomocą urządzenia /dev/dxg z usługami, które naśladują WDDM (Windows Display Driver Model) D3DKMT jądra Windows. Sterownik organizuje połączenie z fizycznym GPU za pomocą VM bus. Aplikacje Linux mają ten sam poziom dostępu do GPU, co natywne aplikacje Windows, bez podziału zasobów między Windows a Linux. Testowanie wydajności na urządzeniu Surface Book Gen3 z GPU Intel wykazało, że w natywnym środowisku Win32 test Geeks3D GpuTest osiąga 19 FPS, w środowisku Linux z vGPU — 18 FPS, a przy programowej renderingu w Mesa — 1 FPS.

Odtwarzaj wideo


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster