Microsoft започна да тества поддръжка за стартиране на Linux GUI приложения на Windows

Microsoft обяви началото на тестване на възможността за стартиране на Linux приложения с графичен интерфейс в среди, базирани на подсистемата WSL2 (Windows Subsystem for Linux), предназначена да изпълнява Linux изпълними файлове на Windows. Приложенията са напълно интегрирани с основния работен плот на Windows, включително поддръжка за поставяне на преки пътища в менюто "Старт", възпроизвеждане на звук, запис от микрофон, OpenGL хардуерно ускорение, показване на информация за програми в лентата на задачите, превключване между програми с Alt-Tab, копиране на данни между Windows - и Linux програми през клипборда.

Microsoft започна да тества поддръжка за стартиране на Linux GUI приложения на Windows

За организиране на изхода на интерфейса на приложението на Linux към основния работен плот на Windows се използва композитният мениджър RAIL-Shell, разработен от Microsoft, който използва протокола Wayland и е базиран на кодовата база на Weston. Изходът се извършва с помощта на RDP-RAIL (RDP Remote Application Integrated Locally) бекенд, който се различава от RDP бекенда, наличен преди това в Weston по това, че съставният мениджър не рисува самия работен плот, а пренасочва отделни повърхности (wl_surface) чрез RDP RAIL канал за показване на основния работен плот на Windows. За стартиране на X11 приложения се използва XWayland.

Microsoft започна да тества поддръжка за стартиране на Linux GUI приложения на Windows

Аудио изходът се организира с помощта на сървъра PulseAudio, който също взаимодейства с Windows, използвайки протокола RDP (плъгинът rdp-sink се използва за аудио изход, а rdp-source се използва за вход). Composite Server, XWayland и PulseAudio са опаковани като универсална WSLGd мини-дистрибуция, която включва компоненти за абстрахиране на графични и аудио подсистеми и е базирана на CBL-Mariner Linux дистрибуцията, използвана също в облачната инфраструктура на Microsoft. WSLGd работи с помощта на механизми за виртуализация, а virtio-fs се използва за споделяне между госта на Linux и хоста на Windows.

FreeRDP се използва като RDP сървър, работещ в WSLGd Linux среда, а mstsc е RDP клиентът от страна на Windows. За да се определят наличните графични Linux приложения и да се показват в менюто на Windows, е подготвен манипулатор на WSLDVCPlugin. С често срещаните дистрибуции на Linux, инсталирани в WSL2 среда, като Ubuntu, Debian и CenOS, наборът от компоненти, работещи в WSLGd, взаимодейства чрез предоставяне на сокети, които обработват заявки през протоколите Wayland, X11 и PulseAudio. Подготвените от WSLGd обвързвания се разпространяват под лиценза на MIT.

Инсталирането на WSLGd изисква поне Windows 10 Insider Preview версия 21362. Занапред WSLGd ще бъде наличен за обикновени издания на Windows, без да е необходимо да участвате в програмата Insider Preview. WSLGd се инсталира чрез изпълнение на типична команда wsl --install, например за Ubuntu - "wsl --install -d Ubuntu". За съществуващи WSL2 среди, инсталирането на WSLGd се извършва чрез командата "wsl --update" (поддържат се само WSL2 среди, които използват ядрото на Linux, а не превод на повиквания). Графичните приложения се инсталират чрез обикновения пакетен мениджър на дистрибуцията.

WSLGd предоставя само механизми за изобразяване на 2D графики и за ускоряване на 3D графики, базирани на OpenGL, дистрибуциите, инсталирани в WSL2, предлагат използването на виртуален GPU (vGPU). vGPU драйвери за WSL са предоставени за AMD, Intel и NVIDIA чипове. Графичното ускорение се осигурява чрез предоставяне на слой с внедряване на OpenGL върху DirectX 12. Слоят е проектиран като драйвер d3d12, който е включен в основния състав на Mesa 21.0 и е разработен съвместно с Collabora.

Виртуалният графичен процесор е внедрен в Linux с помощта на устройството /dev/dxg с услуги, които имитират WDDM (модел на драйвер за дисплей на Windows) D3DKMT на ядрото на Windows. Драйверът установява връзка с физическия GPU с помощта на VM шината. Приложенията за Linux имат същото ниво на достъп до GPU като родните приложения за Windows, без използването на споделяне на ресурси между Windows и Linux. Тестването на производителността на Surface Book Gen3 устройство с Intel GPU показа, че в нативна Win32 среда Geeks3D GpuTest демонстрира 19 FPS, в Linux среда с vGPU - 18 FPS и със софтуерно рендиране в Mesa - 1 FPS.



Източник: opennet.ru

Добавяне на нов коментар