Microsoft почав тестування підтримки запуску GUI-додатків Linux у Windows

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

Microsoft почав тестування підтримки запуску GUI-додатків Linux у Windows

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

Microsoft почав тестування підтримки запуску GUI-додатків Linux у Windows

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

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

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

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



Джерело: opennet.ru

Додати коментар або відгук