- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

Остальные подробности


Компания использует интересный способ вывода звука — при помощи сервера PulseAudio. Сервер взаимодействует с операционной системой посредством протокола RDP (для вывода звука применяется плагин rdp-sink, а для ввода — rdp-source). Этот сервер и XWayland помещены в универсальный мини-дистрибутив WSLGd. В его состав входят компоненты для абстрагирования как графической, так и звуковой подсистем.

Базируется все это на дистрибутиве CBL-Mariner Linux, который Microsoft тоже использует — в своей облачной инфраструктуре. Мини-дистрибутив запускается при помощи механизмов виртуализации. В то же время совместный доступ между гостевым окружением с Linux и хост-системой Windows реализован на базе virtio-fs.

Разработчики выбрали FreeRDP в качестве RDP-сервера, который запускается в Linux-окружении WSLGd. Для той же задачи в ОС Widnows используется mstsc. Обработчик WSLDVCPlugin применяется для определения имеющихся графических Linux-приложений и их отображения в меню Windows. Он позволяет взаимодействовать с дистрибутивами Linux в окружении WLS2 посредством предоставления сокетов, которые обрабатывают запросы по протоколам Wayland, X11 и PulseAudio. Подготовленные для WSLGd обвязки распространяются под лицензией MIT.

Как получить доступ к новым возможностям?


Для этого нужно установить Windows 10 Insider Preview как минимум версии 21362. Разработчики обещают, что в ближайшем будущем для установки WSLGd будет достаточно и обычных выпусков Windows, при этом пользователю не требуется участвовать в программе Insider Preview.

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

Устанавливается WSLGd при помощи команды «wsl --install», например, для Ubuntu — «wsl --install -d Ubuntu». В случае уже существующих окружений WSL2, установка WSLGd осуществляется через команду «wsl --update» (поддерживаются только окружения WSL2, в которых применяется ядро Linux, а не трансляция вызовов). Графические приложения устанавливаются через штатный пакетный менеджер дистрибутива.

WSLGd позволяет работать лишь с 2D-графикой. Если нужна 3D-графика на основе OpenGL, используется иной механизм — виртуальный GPU (vGPU). Драйверы для него предоставляются в трех вариантах — для чипов AMD [1], Intel [2] и NVIDIA [3]. Работа с графикой выполняется путем предоставления прослойки с реализацией OpenGL поверх DirectX 12. Прослойка оформлена в виде драйвера d3d12, вошедшего в основной состав Mesa 21.0, и развиваемого совместно с компанией Collabora.

В Linux виртуальный GPU реализован на основе устройства /dev/dxg с сервисами, повторяющими WDDM (Windows Display Driver Model) D3DKMT ядра Windows. В этой системе драйвер организует соединение с физическим видеочипом через VM bus. У приложений Linux тот же уровень доступа к GPU, что и у родных приложений для Windows, разделения ресурсов между Windows и Linux нет.

В ходе тестирования производительности системы на базе Surface Book Gen3 с GPU Intel выяснилось, что тест Geeks3D GpuTest показывает 19 FPS в Windows, 18 FPS — в Linux. В Mesa же, при программной отрисовке — всего 1 FPS.

Немного бэкграунда


WSL2 стало доступным [4] для пользователей Windows с 20 августа 2020 года — именно тогда Microsoft выпустила кумулятивное обновление KB4566116.

Microsoft начал тестирование поддержки запуска GUI-приложений Linux в Windows - 3
После его установки пользователи ОС Windows 10 версии 1903 и версии 1909 стали тестировать WSL2, причем отзывы были в большинстве своем положительные. До 20 августа была доступна лишь WSL первой версии, и только в Windows 10 версии 2004.

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

Что касается первой версии WSL, то работа над ней началась несколько лет назад. Официальное заявление о подсистеме было сделано на конференции Microsoft Build 2016. Анонс был коротким — тогда о возможностях WSL рассказали в течение пары минут. Но он вызвал такой ажиотаж и наплыв трафика на страницу с анонсом, что у организаторов конференции даже возникло подозрение в том, что кто-то организовал DDoS-атаку.

C тех пор WSL эволюционировала очень сильно, и сейчас подсистема продолжает развиваться.

Автор: Seleditor

Источник [5]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/linux/363567

Ссылки в тексте:

[1] AMD: https://community.amd.com/community/radeon-pro-graphics/blog/2020/06/17/announcing-amd-support-for-gpu-accelerated-machine-learning-training-on-windows-10

[2] Intel: https://downloadcenter.intel.com/download/29526

[3] NVIDIA: https://developer.nvidia.com/cuda/wsl

[4] стало доступным: https://habr.com/ru/news/t/516054/

[5] Источник: https://habr.com/ru/post/553764/?utm_source=habrahabr&utm_medium=rss&utm_campaign=553764