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

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

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

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

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

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

Като RDP-сървър, стартирано в Linux-среда WSLGd, се използва FreeRDP, а от страна на Windows RDP клиентът е mstsc. За идентифициране на наличните графични Linux приложения и тяхното визуализиране в менюто на Windows е подготвен обработчик WSLDVCPlugin. С инсталираните в средата WSL2 обикновени дистрибуции на Linux, като Ubuntu, Debian и CentOS, наборът от компоненти, работещ в 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.

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

Възпроизведи видео


Източник: opennet.ru
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster