Firma Microsoft rozpoczęła testowanie obsługi uruchamiania aplikacji Linux GUI w systemie Windows

Microsoft ogłosił rozpoczęcie testów możliwości uruchamiania aplikacji linuksowych z interfejsem graficznym w środowiskach opartych o podsystem WSL2 (Windows Subsystem for Linux), przeznaczonych do uruchamiania linuksowych plików wykonywalnych w systemie Windows. Aplikacje są w pełni zintegrowane z głównym pulpitem Windows, m.in. obsługa umieszczania skrótów w menu Start, odtwarzanie dźwięku, nagrywanie dźwięku z mikrofonu, akceleracja sprzętowa OpenGL, wyświetlanie informacji o programach na pasku zadań, przełączanie pomiędzy programami za pomocą Alt-Tab, kopiowanie danych pomiędzy Windowsami - i programy Linux za pośrednictwem schowka.

Firma Microsoft rozpoczęła testowanie obsługi uruchamiania aplikacji Linux GUI w systemie Windows

Aby uporządkować dane wyjściowe interfejsu aplikacji systemu Linux na głównym pulpicie systemu Windows, używany jest złożony menedżer RAIL-Shell opracowany przez firmę Microsoft, wykorzystujący protokół Wayland i oparty na bazie kodu Westona. Dane wyjściowe są realizowane przy użyciu backendu RDP-RAIL (RDP Remote Application Integrated Locally), który różni się od backendu RDP dostępnego wcześniej w Weston tym, że menedżer złożony nie renderuje samego pulpitu, ale przekierowuje poszczególne powierzchnie (wl_surface) przez RDP Kanał RAIL do wyświetlania na głównym pulpicie systemu Windows. XWayland służy do uruchamiania aplikacji X11.

Firma Microsoft rozpoczęła testowanie obsługi uruchamiania aplikacji Linux GUI w systemie Windows

Wyjście audio jest organizowane za pomocą serwera PulseAudio, który współpracuje również z systemem Windows za pomocą protokołu RDP (do wyjścia audio używana jest wtyczka rdp-sink, a do wejścia używana jest wtyczka rdp-source). Serwer kompozytowy XWayland i PulseAudio spakowane są w formie uniwersalnej minidystrybucji o nazwie WSLGd, zawierającej komponenty do abstrakcji podsystemów graficznych i audio, opartej na dystrybucji CBL-Mariner Linux, wykorzystywanej także w infrastrukturze chmurowej Microsoft . WSLGd działa przy użyciu mechanizmów wirtualizacji, a virtio-fs służy do współdzielenia dostępu pomiędzy środowiskiem gościa Linux i systemem hosta Windows.

FreeRDP służy jako serwer RDP uruchomiony w środowisku WSLGd Linux, a mstsc działa jako klient RDP po stronie Windows. Aby wykryć istniejące graficzne aplikacje Linux i wyświetlić je w menu Windows, przygotowano procedurę obsługi WSLDVCPlugin. W przypadku konwencjonalnych dystrybucji Linuksa, takich jak Ubuntu, Debian i CenOS, zainstalowanych w środowisku WSL2, zestaw komponentów działających w WSLGd współdziała, udostępniając gniazda obsługujące żądania przy użyciu protokołów Wayland, X11 i PulseAudio. Wiązania przygotowane dla WSLGd dystrybuowane są na licencji MIT.

Instalacja WSLGd wymaga systemu Windows 10 Insider Preview w wersji co najmniej 21362. W przyszłości WSLGd będzie dostępny dla zwykłych wersji systemu Windows bez konieczności uczestniczenia w programie Insider Preview. Instalacja WSLGd odbywa się poprzez wykonanie standardowego polecenia „wsl —install”, na przykład dla Ubuntu - „wsl —install -d Ubuntu”. W istniejących środowiskach WSL2 instalacja WSLGd odbywa się za pomocą polecenia „wsl --update” (obsługiwane są tylko środowiska WSL2, które korzystają z jądra Linuksa i nie obsługują translacji wywołań). Aplikacje graficzne instaluje się za pomocą standardowego menedżera pakietów dystrybucji.

WSLGd zapewnia wyłącznie silniki do generowania grafiki 2D, a do przyspieszania grafiki 3D w oparciu o OpenGL, dystrybucje zainstalowane w WSL2 oferują wykorzystanie wirtualnego procesora graficznego (vGPU). Sterowniki vGPU dla WSL są dostępne dla układów AMD, Intel i NVIDIA. Przyspieszenie grafiki zapewnione jest poprzez udostępnienie warstwy z implementacją OpenGL poprzez DirectX 12. Warstwa została zaprojektowana w postaci sterownika d3d12, który jest zawarty w głównej części Mesa 21.0 i jest rozwijany wspólnie z Collaborą.

Wirtualny procesor graficzny jest zaimplementowany w systemie Linux przy użyciu urządzenia /dev/dxg z usługami replikującymi WDDM (model sterownika wyświetlacza systemu Windows) D3DKMT jądra systemu Windows. Sterownik nawiązuje połączenie z fizycznym procesorem graficznym za pomocą magistrali VM. Aplikacje systemu Linux mają ten sam poziom dostępu do procesora graficznego, co natywne aplikacje systemu Windows, bez konieczności współdzielenia zasobów między systemami Windows i Linux. Testy wydajności na urządzeniu Surface Book Gen3 z procesorem graficznym Intel wykazały, że w natywnym środowisku Win32 test Geeks3D GpuTest wykazuje 19 FPS, w środowisku Linux z vGPU - 18 FPS, a przy renderowaniu programowym w Mesa - 1 FPS.



Źródło: opennet.ru

Dodaj komentarz