Microsoft оголосила про значні поліпшення у своїх підсистемах Windows для Linux, які дозволяють запускати додатки Linux з графічним інтерфейсом.
Коли у 2016 році Microsoft вперше випустила підсистему WSL (Windows Subsystem for Linux), розголос був нереально гучним. Люди мріяли запустити свої додатки для Windows і Linux паралельно, без перезавантаження. Але, на жаль, на той момент WSL міг запускати тільки термінальні додатки.
У 2020 році Microsoft знову спробувала революціонувати екосистему додатків Windows. На цей раз Microsoft замінила старе емульоване ядро справжнім ядром Linux. Ця зміна дозволила запускати GUI додатки Linux в Windows. Зараз дана розробка вже знаходиться в стадії фінального тестування.
Попередній перегляд додатків з графічним інтерфейсом для WSL
У наступному відео ви можете побачити демонстрацію використання графічного інтерфейсу WSL в збірці Windows для розробників build 21364
https://www.youtube.com/watch?v=LFBplPbZxjs
Раніше ми мали лише початкову підтримку додатків 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.
Автоматичний запуск всіх необхідних серверів
Раніше вам доводилось запускати 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? Діліться в коментарях нижче!