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

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


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


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

В качестве RDP-сервера, запускаемого в Linux-окружении, применяется FreeRDP, на стороне Windows в RDP-клиентом выступает mstsc. Для определения имеющихся графических Linux-приложений и их отображения в меню Windows подготовлен обработчик WSLDVCPlugin. С установленными в окружении WSL2 обычными дистрибутивами Linux, такими как Ubuntu, Debian и CenOS, указанный набор взаимодействует через предоставление сокетов, обрабатывающих запросы по протоколам 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, а не трансляция вызовов). Графические приложения устанавливаются через штатный пакетный менеджер дистрибутива.

Для задействования аппаратного ускорения в OpenGL рекомендуется использование в WSL2 виртуального GPU (vGPU). Драйверы vGPU для WSL предоставлены для чипы AMD, Intel и NVIDIA. Ускорение графики обеспечивается через предоставление прослойки с реализацией OpenGL поверх DirectX 12. Прослойка оформлена в виде драйвера d3d12, вошедшего в основной состав Mesa 21.0, и развиваемого совместно с компанией Collabora.



Release. Ссылка here.