Запуск графических приложений Linux в Windows теперь стал реальностью

Запуск графических приложений Linux в Windows 10

Microsoft объявила о значительных улучшениях в своих подсистемах Windows для Linux, которые позволяют запускать приложения Linux с графическим интерфейсом.

Когда в 2016 году Microsoft впервые выпустила подсистему WSL (Windows Subsystem for Linux), шумиха была нереальной. Люди мечтали запустить свои приложения для Windows и Linux параллельно, без перезагрузки. Но, увы, на тот момент WSL мог запускать только терминальные приложения.

В 2020 году Microsoft снова предприняла попытку революционизировать экосистему приложений Windows. На этот раз они заменили старое эмулируемое ядро настоящим ядром Linux. Это изменение позволило запускать приложения Linux в Windows. Сейчас данная разработка уже находится в стадии финального тестирования.

Предварительный просмотр приложений с графическим интерфейсом для WSL

В следующем видео вы можете увидеть демонстрацию использования графического интерфейса WSL в сборке Windows для разработчиков build 21364

Ранее мы имели лишь начальную поддержку приложений Linux GUI на WSL, и нужно было использовать сторонний X-сервер, что на практике означало медленную работу, отсутствие аппаратного, множество ошибок и большую брешь в безопасности.

Небольшая группа энтузиастов Linux (которые работали с Windows) обладающих навыками и знаниями в настройке X-сервера разработали свои утилиты для решения части недостатков.

Однако теперь все поменялось. Сама Microsoft официально полноценно поддерживает приложения Linux с графическим интерфейсом. Теперь мы получили аппаратное ускорение и множество других жизненно необходимых улучшений в WSL.

Приложения Linux с графическим интерфейсом для широких масс: WSLg

Благодаря новой официальной поддержке со стороны Microsoft в WSL существует огромный спектр улучшений. Этот перечень включает:

  • Аппаратное ускорение GPU
  • Поддержку звука и микрофона из коробки
  • Автоматический запуск серверов X и PulseAudio

Данное расширение называется «WSLg». WSLg делает запуск приложений Linux на WSL почти таким же простым, как запуск родных системных приложений, с минимальными потерями в производительности.

Сейчас вы можете попробовать запустить свою любимую среду IDE, сценарии использования для тестирования, специфичные для Linux, и множество других приложений, таких как программное обеспечение САПР.

Аппаратное ускорение GPU в приложениях Linux

Одна из самых больших проблем с запуском приложений Linux с графическим интерфейсом пользователя в Windows ранее заключалась в том, что они не могли использовать аппаратное ускорение. Это приводило к зависаниям даже когда мы просто перемещали окна, а при попытке выполнить более сложные задачи происходили еще большие проблемы.

Согласно анонсу от Microsoft:

В рамках этой функции мы также включили поддержку 3D-графики с ускорением на GPU! Благодаря работе, выполненной в Mesa 21.0, любые приложения, выполняющие сложный 3D-рендеринг, могут использовать OpenGL для их ускорения с помощью графического процессора на вашем компьютере с Windows 10.

Это полезное дополнение, которое должно помочь всем, кто хочет запускать приложения с интенсивным использованием графических процессоров через WSL.

В 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.

Поддержка аудио и микрофона из коробки!

Одним из ключевых элементов нормальной работы приложениями Linux, работающими вместе с приложениями Windows, является поддержка звука. В новом обновлении WSL звук поддерживается из коробки. Это достигается за счет запуска сервера PulseAudio одновременно с X-сервером.

Microsoft объясняет:

Приложения Linux GUI на WSL также будут включать встроенную поддержку звука и микрофона. Этот захватывающий аспект позволит вашим приложениям воспроизводить звуковые сигналы и использовать микрофон, что идеально подходит для создания, тестирования или использования проигрывателей фильмов, телекоммуникационных приложений и многого другого.

Если мы хотим, чтобы приложения для Linux стали более распространенными, это ключевая особенность. Это также позволит разработчикам приложений для Windows лучше поддерживать перенос своих приложений на Linux.

RDP-сервер

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

Автоматический запуск всех необходимых серверов

Архитектура обновленной Linux среды WSL

Раньше вам приходилось запускать PulseAudio и X-серверы вручную, прежде чем вы сможете что-либо запустить. Теперь Microsoft реализовала автоматическую проверку и запуск необходимых серверов.

Это значительно упрощает запуск и использование приложений Linux в Windows.

Microsoft утверждает, что это значительно улучшит взаимодействие с пользователем:

С помощью этой функции мы автоматически запускаем сопутствующий системный дистрибутив, содержащий Wayland, X-сервер, импульсный аудиосервер и все остальное, необходимое для взаимодействия приложений Linux с графическим интерфейсом пользователя с Windows. После того, как использование приложений с графическим интерфейсом будет завершено, операционная система автоматически завершит Linux среду.

Компоненты Linux среды объединены в одно целое и их взаимосвязь остается невидимой для пользователя, чтобы запуск приложений Linux с графическим интерфейсом был таким же простым как запуск обычных приложений Windows.

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

Для этого нужно установить 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, используется иной механизм — виртуальный GPU (vGPU). Драйверы для него предоставляются в трех вариантах — для чипов AMD, Intel и NVIDIA. Работа с графикой выполняется путем предоставления прослойки с реализацией OpenGL поверх DirectX 12. Прослойка оформлена в виде драйвера d3d12, вошедшего в основной состав Mesa 21.0, и развиваемого совместно с компанией Collabora.

Заключительные мысли

Microsoft делает все возможное, чтобы приложения Linux полноценно работали в Windows. И, возможно, в отдельных случаях это даже сыграет против Microsoft, поскольку будут такие пользователи, которые попробовав Linux приложения, перейдут исключительно на Linux.

Что вы думаете о новом функционале по работе приложениях Linux с графическим интерфейсом в Windows? Делитесь ими в комментариях ниже!

Поделитесь с друзьями

Добавить комментарий

0 комментариев
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x