Дополнение A. Начальное представление поддержки GUI теперь доступно для WSL

Перевод статьи Craig Loewen от 21 апреля 2021 The Initial Preview of GUI app support is now available for the Windows Subsystem for Linux.

Год назад, на BUILD 2020 мы представили своей целью привнесение приложений Linux с графическим интерфейсом в свою Windows Subsystem for Linux (WSL) для запуска приложений Linux с графическим интерфейсом (GUI). Мы с гордостью заявляем о самом первом предварительном представлении этой долгожданной функциональной возможности с открытым исходным кодом! Этой функциональности мы присвоили прозвище “WSLg”. Просмотрите ниже наше видео или продолжайте чтение чтобы ознакомиться с тем, для чего вы можете применять эту функциональную возможность, как она работает и как её установить.

Для чего я могу применять поддержку приложений с графическим интерфейсом?

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

Применение IDE вашей мечты для разработки проектов Linux

Visual Studio Code обладает впечатляющим опытом применения VS Code Remote чтобы создавать для вас способа обладания полноценной средой IDE Linux непосредственно в вашей машине Windows, сохраняя расширения и настройки как в Windows, так и в различных дистро WSL (здесь вы можете просмотреть руководство по началу работы с VS Code). WSLg позволит вам запускать и прочие IDE, такие как gedit, редакторы на основе JetBrains, gvim и тому подобные для эффективного тестирования, сборки и отладки ваших приложений Linux.

Вот некий образец запуска gedit и gvim для редактирования файлов непосредственно в WSL.

Audio Linux GUI apps

Запуск приложений, доступных только в Linux, или варианты использования специфичные Linux, например, тестирование

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

Давайте рассмотрим пример запуска в WSL TestCafe Studio для выполнения некого веб тестирования из запущенного в Linux браузера Microsoft Edge.

Audio Linux GUI apps

Сборка, тестирование и применение приложений Linux, которые пользуются аудио или микрофоном со встроенной поддержкой аудио

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

Вот некий пример использования запущенного в Linux Audacity для записи какого- то аудио и его воспроизведения.

Audio Linux GUI apps

Бонус: Применение доступа к графическому процессору WSL для запуска приложений Linux с 3D ускорением

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

Ниже вы можете видеть приложение Gazebo, имитирующее робота, исследующего виртуальную пещеру, а также приложение Rviz, визуализирующее изображение с камеры этого робота и выходной сигнал его датчика лазерного поля. Благодаря 3D графике с ускорением графического процессора мы можем запускать данную демонстрацию со скоростью 60 кадров в секунду!

Image GUIAppsBlogPostDemo GIF4 ROS

Как работает эта функциональная возможность?

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

Как и вся прочая конвейеризация WSL, наше намерение здесь состоит в том, чтобы этот компонент целиком управлялся и был бесшовным для пользователей. Мы стремимся к тому, чтобы этот системный дистро был как можно более невидим для пользователя и именно поэтому вы не обнаружите данный системный дистро при запуске wsl -l -v. И, наконец, мы рады сообщить, что для данного системного дистро мы применяем дистрибутив CBL-Mariner Microsoft! CBL-Mariner это внутренний дистрибутив Linux, традиционно применяемый в инфраструктурах облачных решений Microsoft, а также в периферийных продуктах и службах, а теперь мы расширяем его применение на поддержку приложений с графическим интерфейсом внутри WSL. Вы можете ознакомиться с приводимой ниже схемой чтобы увидеть общую сводку архитектуры данной функциональности.

 

Рисунок A-1



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

Приступаем к работе с этой функциональностью

Мы приступаем к развёртыванию этой функциональной возможности в качестве изначального представления перед тем как мы полностью внедрим её в практику WSL. Чтобы начать пользоваться поддержкой приложений Linux с графическим интерфейсом, вам необходимо убедиться, что вы применяете предварительную версию Windows 10 Insiders сборки 21364 или выше. Если у вас уже установлена WSL, всё что вам требуется, так это запустить wsl --update и вы настроитесь на применение прикладных приложений с графическим интерфейсом. Если у вас нет включённой WSL, исполните wsl --install, что автоматически установит WSLg как часть первоначальной настройки WSL.

Вы можете найти полные инструкции по установке в README соответствующего репозитория GitHub. Мы также настоятельно рекомендуем чтобы вы обладали включённой в WSL поддержкой вычислений графического процессора для наилучшей производительности, обратитесь, пожалуйста, к этому разделу инструкций по установке чтобы ознакомиться с тем, как гарантировать включение такой функциональности.

Обратная связь

Обращайтесь, пожалуйста, с любыми техническими проблемами или запросами на функциональность для поддержки приложений с графическим интерфейсом в наш репозиторий GitHub WSLg. В случае общих проблем WSL, оставляйте их, пожалуйста, в репозитории WSL. Вы также можете связываться со мной в Twitter @craigaloewen и со всеми участниками команды WSL, которые находятся в Twitter по данному списку. Следите за обновлениями данного блога чтобы увидеть более интересные обновления WSL и нам не терпится узнать что вы думаете об этой новой функциональности.