+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новини

Microsoft анонсувала початок тестування Initial Preview of GUI app support для WSL2 (Windows Subsystem for Linux)

Microsoft оголосила про початок тестування початкового попереднього перегляду підтримки графічного інтерфейсу для WSL2 (підсистеми Windows для Linux)

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

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

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

FreeRDP використовується як сервер RDP, що працює в середовищі WSLGd Linux, а на стороні Windows клієнтом RDP є mstsc. Обробник WSLDVCPlugin був підготовлений для ідентифікації існуючих графічних додатків Linux і відображення їх в меню Windows. З поширеними дистрибутивами Linux, встановленими в середовищі WSL2, такими як Ubuntu, Debian і CenOS, набір компонентів, запущених в WSLGd, взаємодіє, надаючи сокети, які обробляють запити за допомогою протоколів Wayland, X11 і PulseAudio. Ремінці, підготовлені для WSLGd , розповсюджуються за ліцензією Массачусетського технологічного інституту.

Для встановлення WSLGd потрібен Попередній перегляд Insider Windows 10 принаймні версії 21362. Надалі можливість установки WSLGd буде надаватися для звичайних редакцій Windows, без необхідності участі в програмі Insider Preview. Установка WSLGd здійснюється шляхом виконання типової команди "wsl --install", наприклад, для Ubuntu - "wsl --install -d Ubuntu". Для існуючих середовищ WSL2 WSLGd встановлюється через команду "wsl --update" (підтримуються тільки середовища WSL2, які використовують ядро Linux і не викликають переклад). Графічні додатки встановлюються через звичайний пакетний менеджер дистрибутива.

WSLGd надає тільки механізми виведення 2D графіки, а для прискорення 3D-графіки на базі OpenGL в дистрибутивах, встановлених в WSL2, пропонується використовувати віртуальний графічний процесор (vGPU). Драйвери VGPU для WSL передбачені для чіпів AMD, Intel , і NVIDIA .  Графічне прискорення забезпечується за рахунок надання шару з реалізацією OpenGL поверх DirectX 12. Шар виконаний у вигляді драйвера d3d12, який входить в основну композицію Mesa 21.0, і розробляється спільно з Collabora.

Робота віртуального графічного процесора реалізована в Linux з використанням пристрою /dev/dxg зі службами, які повторюють WDDM (Модель драйвера дисплея Windows) D3DKMT ядра Windows. Водій організовує підключення до фізичного графічного процесора за допомогою шини VM. Програми Linux мають той же рівень доступу до GPU, що і нативні програми Windows, без застосування поділу ресурсів між Windows і Linux. Тестування продуктивності на пристрої Surface Book Gen3 з графічним процесором Intel показало, що в рідному середовищі Win32 тест Geeks3D GpuTest показує 19 FPS, в середовищі Linux з vGPU - 18 FPS, а при програмному рендеринге в Mesa - 1 FPS.

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

У рамках цієї функції ми також увімкнули підтримку 3D-графіки з прискоренням графічного процесора! Завдяки роботі, яка була завершена в Mesa 21.0, будь-які програми, які роблять складний 3D-рендеринг, можуть використовувати OpenGL для прискорення їх за допомогою графічного процесора на вашій машині з Windows 10. Це змусить деякі з ваших більш складних додатків працювати безперебійно, наприклад, запуск Альтанки, інструмент моделювання робототехніки. Незабаром цей досвід буде включений за замовчуванням до різних дистрибутивів WSL, однак ви можете отримати до нього доступ відразу, дотримуючись інструкцій у цій публікації в блозі, щоб отримати правильний графічний драйвер і переконатися, що ваш дистрибутив має сумісну версію Mesa..

Нижче ви можете побачити додаток Альтанка, що імітує робота, що досліджує віртуальну печеру, а також додаток Rviz, що візуалізує подачу камери робота та його датчик лазерного поля на виході. Завдяки 3D-графіці з прискоренням графічного процесора ми можемо запустити цю демонстрацію зі швидкістю 60 FPS!

Початок роботи з цією функцією

Ми починаємо розгортання цієї функції як початковий попередній перегляд, перш ніж повністю впровадити її в WSL. Щоб почати використовувати підтримку програми графічного інтерфейсу Linux, вам потрібно буде переконатися, що ви використовуєте попередню збірку Windows 10 Insiders 21364 або новішої версії. Якщо WSL вже встановлено, все, що вам потрібно зробити, це запустити wsl --update , і ви будете налаштовані на використання програм графічного інтерфейсу. Якщо WSL не ввімкнено, запуск wsl --install автоматично встановить WSLg як частину початкового налаштування WSL.

Повні інструкції по установці можна знайти на сайті README репозиторіїв GitHub: https://github.com/microsoft/wslg . Ми також настійно рекомендуємо вам увімкнути підтримку обчислень GPU у WSL для найкращої продуктивності, перегляньте цей розділ інструкцій щодо встановлення, щоб побачити, як ви можете переконатися, що ця функція ввімкнена.

Інші новини