Открыть сервис

Wayland

Wayland — это протокол взаимодействия (коммуникационный протокол) и эталонная реализация (композитный менеджер Weston) для управления окнами и отображением графической информации в операционных системах на ядре Linux. Wayland предназначен для замены устаревшей системы X Window System (X11) и обеспечивает более прямое, безопасное и эффективное взаимодействие между клиентскими приложениями и композитным менеджером, который выполняет функции сервера отображения.

История

Разработка Wayland была начата в 2008 году программистом Кристианом Хогсбергом (Kristian Høgsberg), работавшим в компании Red Hat. Основной мотивацией послужило стремление упростить архитектуру графического стека Linux, которая к тому моменту включала множество устаревших и избыточных компонентов X11. Проект X.Org, поддерживающий X11, страдал от накопленного за десятилетия технического долга, а попытки его модернизации (например, проект XCB или композитные менеджеры, такие как Compiz) не решали фундаментальных проблем безопасности и производительности.

Первый публичный релиз Wayland состоялся в 2011 году. В последующие годы протокол и его реализации (Weston, а затем и поддержка в других композитных менеджерах) активно развивались. Ключевым этапом стало включение поддержки Wayland в основные графические библиотеки (GTK+, Qt) и в ядро Linux (драйверы Direct Rendering Manager, DRM). Начиная с 2017—2018 годов, большинство крупных дистрибутивов Linux (Fedora, Ubuntu, Debian, openSUSE) начали предлагать Wayland в качестве сеанса по умолчанию для рабочих сред GNOME и KDE Plasma. По состоянию на 2023—2024 годы Wayland является основным протоколом для большинства современных дистрибутивов Linux, хотя X11 по-прежнему поддерживается для обратной совместимости.

Архитектура

Принцип работы

В отличие от X11, где сервер (X-сервер) управляет всем оборудованием, вводом и выводом, а клиенты (приложения) отправляют ему запросы на отрисовку, Wayland использует модель «всё — в композитном менеджере». Композитный менеджер (например, Weston, KWin, Mutter) является одновременно и сервером отображения, и менеджером окон. Каждое приложение (клиент) получает от композитного менеджера буфер (поверхность), в котором оно самостоятельно отрисовывает своё содержимое. Композитный менеджер затем собирает (композитит) все поверхности в единое изображение и выводит его на экран.

Ключевые компоненты

Отличия от X11

ХарактеристикаX11Wayland
АрхитектураСервер-клиент с разделением на X-сервер, оконный менеджер и композитный менеджер.Всё в одном: композитный менеджер = сервер отображения + оконный менеджер.
БезопасностьНизкая: любое приложение может читать ввод с клавиатуры, делать скриншоты других окон.Высокая: приложения изолированы, не имеют доступа к вводу других окон или к содержимому чужих поверхностей.
ПроизводительностьВысокая задержка из-за множества промежуточных буферов и протокольных операций.Низкая задержка: прямой рендеринг через DRM, минимальное копирование буферов.
Сетевая прозрачностьВстроенная поддержка удалённого отображения (XDMCP).Отсутствует на уровне протокола; требуется отдельное решение (например, PipeWire, FreeRDP).
Управление окнамиОтдельный процесс (оконный менеджер).Встроено в композитный менеджер.
Обработка вводаЧерез X-сервер, с возможностью перехвата любым клиентом.Только через композитный менеджер, который передаёт события целевому окну.

Реализации (композитные менеджеры)

Weston

Weston — эталонная реализация протокола Wayland, разрабатываемая тем же сообществом. Он предназначен для демонстрации возможностей протокола и для тестирования. Weston поддерживает различные бэкенды (DRM, X11, Wayland, framebuffer, RDP) и может использоваться как в полноценных настольных средах, так и на встраиваемых устройствах.

Mutter

Mutter — композитный менеджер, используемый в рабочей среде GNOME. Он является основным драйвером внедрения Wayland в экосистеме Linux. Начиная с GNOME 3.22 (2016 год), Mutter поддерживает сеанс Wayland, который стал сеансом по умолчанию в Fedora и Ubuntu.

KWin

KWin — композитный менеджер для рабочей среды KDE Plasma. Поддержка Wayland в KWin была добавлена в версии 5.8 (2016 год) и активно развивается. Начиная с KDE Plasma 6 (2024 год), сеанс Wayland является рекомендуемым и используется по умолчанию в большинстве дистрибутивов.

Sway

Sway — композитный менеджер, реализующий протокол Wayland и предназначенный для замены оконного менеджера i3 (работающего под X11). Sway полностью совместим с конфигурацией i3 и поддерживает мозаичное управление окнами.

Преимущества и недостатки

Преимущества

Недостатки

XWayland

XWayland — это прослойка, которая позволяет запускать приложения, написанные для X11, в среде Wayland. Она представляет собой X-сервер, который выводит свои окна не на экран напрямую, а в виде поверхностей Wayland. Таким образом, старые приложения (например, некоторые игры, профессиональные инструменты) могут работать под Wayland без модификаций. XWayland является критически важным компонентом для обеспечения обратной совместимости и постепенного перехода с X11 на Wayland.

Применение

Wayland используется в качестве основного протокола отображения в большинстве современных дистрибутивов Linux для настольных компьютеров (Fedora, Ubuntu, Debian, openSUSE, Arch Linux). Он также применяется на встраиваемых устройствах, в автомобильных информационно-развлекательных системах, на планшетах и в других сценариях, где требуется высокая производительность и безопасность. В игровой среде Wayland поддерживается большинством современных игровых движков (через Vulkan, OpenGL) и Steam (через Proton). Однако некоторые игры, использующие старые версии DirectX или специфические функции X11, могут работать только через XWayland.

См. также

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →