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

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

Предварительная версия предоставляется через программу предварительной оценки Windows, с помощью которой разработчики и энтузиасты могут заранее ознакомиться с предстоящими выпусками. Последняя загружаемая сборка — 21354, но версия, которая поддерживает WSLg, — это сборка 21364, поэтому в нашем случае речь шла об установке 21354 из образа ISO, входе в систему с учетной записью Microsoft, зарегистрированной как инсайдер, а затем ожидании, пока более поздняя сборка произошла из Центра обновления Windows. Мы также решили запустить его на виртуальной машине Hyper-V. Для этого необходимо включить вложенную виртуализацию, поскольку WSL также использует Hyper-V. Для этого требуется команда PowerShell с хост-компьютера.

После того, как сборка 21364 запущена и запущена, нужно запустить wsl --install из командной строки администратора. Это делает больше работы, чем раньше, поскольку WSLg включается автоматически. Это довольно много: с WSLg мы устанавливали не одну, а две виртуальные машины WSL2, одна из них — пользовательский дистрибутив Ubuntu, а другая — скрытый системный дистрибутив, использующий собственный дистрибутив Microsoft. CBL-Mariner Linux. Этот дистрибутив описывает себя как «внутренний дистрибутив Linux для облачной инфраструктуры и периферийных продуктов Microsoft», поэтому его предстоящее появление на миллионах ПК с Windows 10 является значительным расширением его роли.

Этот системный дистрибутив работает Вестон, который является эталонной реализацией композитора Wayland. «Уэстон — сердце WSLg», сказал Стив Проновост из Microsoft, руководитель отдела развития партнеров. Дистрибутив запускает сервер протокола удаленного рабочего стола, называемый БесплатноRDP который позволяет пользователям подключаться с помощью клиента удаленного рабочего стола Windows. Microsoft расширила FreeRDP для поддержки отдельных окон вместо всего рабочего стола, добавила поддержку масштабирования DPI для каждого монитора и поддержку буфера обмена, чтобы пользователи могли вырезать и вставлять между приложениями Windows и Linux.

Диаграмма WSLg, показывающая роль RDP и роль второго скрытого дистрибутива Linux, работающего под управлением собственного Linux от Microsoft.

Читайте также:
Спецслужбы схватили хакера номер один в Польше

Диаграмма WSLg, показывающая роль RDP и роль второго скрытого дистрибутива Linux, работающего под управлением собственного Linux от Microsoft.

Уэстон в WSLg играет еще одну небольшую, но значимую роль. Он включает в себя плагин RDP, который сканирует пользовательский дистрибутив на предмет наличия настольных приложений, а затем добавляет их в меню «Пуск» Windows вместе с командной строкой для их запуска. На практике это имеет большое значение для взаимодействия с пользователем, поскольку приложения с графическим интерфейсом пользователя Linux находятся и запускаются так же, как и собственные приложения Windows.

Установив WSLg, мы вошли в Ubuntu, обновили пакеты и набрали sudo apt install gedit. Gedit — стандартный текстовый редактор GNOME. Поскольку Ubuntu в WSL по умолчанию не является графическим пользовательским интерфейсом, установка первого приложения с графическим интерфейсом требует много работы, но оно сработало, и Gedit должным образом появился в меню «Пуск», где он назывался «Текстовый редактор» (Ubuntu). После запуска он появляется на панели задач со значком наложения пингвина и (в нашем случае) уродливым «[WARN: COPY MODE]». Что такое режим копирования? Возможно, это указывает на использование RAIL (удаленное приложение, интегрированное локально), которое является средством отображения описанных удаленных приложений здесь, а не VAIL (виртуализированное приложение, интегрированное локально). RAIL копирует пиксели через RDP, тогда как VAIL использует память, совместно используемую между главным компьютером и виртуальной машиной WSL2. WSLg предназначен для использования VAIL, но, возможно, в некоторых случаях возвращается к RAIL. Согласно документации, и RAIL, и VAIL теперь реализованы в FreeRDP.

Приложения Linux с графическим интерфейсом пользователя автоматически появляются в меню Пуск Windows.

Читайте также:
Windows 10 получит Service Release 1 в августе

Приложения Linux с графическим интерфейсом пользователя автоматически появляются в меню Пуск Windows.

Несмотря на предупреждение, Gedit работал хорошо, копирование и вставка в Блокнот и из него работали нормально. Став более амбициозными, мы попробовали sudo apt install libreoffice. Это большое приложение удалило еще много зависимостей, но оно сработало, и мы обнаружили семь дополнительных приложений в меню «Пуск», которые являются компонентами пакета LibreOffice. LibreOffice Writer открылся на рабочем столе Windows и, несмотря на очередное предупреждение о «РЕЖИМЕ КОПИРОВАНИЯ», работал хорошо. Мы действительно столкнулись с небольшими сбоями в работе с буфером обмена. При копировании текста из Word на хост-компьютер (который является хостом виртуальной машины под управлением Windows 10) возникала ошибка «не поддерживается», хотя при последующей попытке она работала правильно.

История разработчика WSLg особенно важна, учитывая, что большая часть первоначального импульса для WSL была вызвана необходимостью поддерживать разработчиков, работающих над Windows, но кодирующих приложения для серверов Linux. Visual Studio Code, работающий в Windows, имеет хорошую удаленную поддержку WSL, но как насчет запуска сборки VS Code для Linux?

Быстрый sudo apt install code сделали свое дело, и при использовании VS Code таким образом будет немного меньше трений, если исходный код находится в файловой системе WSL2. Между прочим, сохранение документов в приложениях Linux GUI работает должным образом, отображая плавающее диалоговое окно Linux Save, в котором по умолчанию используется домашний каталог пользователя на стороне WSL2. Файловая система хоста Windows также доступна через / mnt / c / Users / tim / Документы, Например.

Приложения Linux, работающие в Windows: Firefox, LibreOffice, Gedit и VS Code.

Читайте также:
Проект Asahi, финансируемый за счет краудфандинга, направлен на «безупречный» опыт работы с Linux на Apple Silicon • Реестр

Приложения Linux, работающие в Windows: Firefox, LibreOffice, Gedit и VS Code.

Получение максимальной производительности от WSLg означало бы запуск его на «голом железе», а не на виртуальной машине, и установку драйвера графического процессора, поддерживающего аппаратное ускорение OpenGL на стороне WSL. Они доступны в предварительной версии от AMD, Intel и Nvidia, но не помогут, если хост-компьютер сам является виртуальной машиной. Это важно, поскольку это означает, что графические приложения будут работать с аппаратным ускорением. Он также позволяет разрабатывать универсальные графические процессоры, такие как язык Nvidia CUDA, работающий в WSL2. Это важно для разработки приложений AI и ML, предназначенных, среди прочего, для развертывания на серверах Linux.

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