Релиз Wayland 1.0, ознаменовавший стабилизацию протокола

После четырёх лет разработки представлен первый стабильный релиз протокола, механизма межпроцессного взаимодействия и библиотек Wayland 1.0. Одновременно выпущен релиз эталонного композитного сервера Weston 1.0, развивающегося в рамках проекта Wayland.

Ключевым достижением Wayland 1.0 являться стабилизация API и протокола. Если до сих пор протокол и API находились в активной разработке и постоянно менялись, что существенно усложняло развитие приложений и построение решений на базе Wayland, то отныне разработчиками гарантируется обеспечение обратной совместимости для всех выпусков в рамках текущей ветки 1.x, что даёт зелёный свет для начала повсеместного внедрения и использования Wayland.

В ближайшее время ожидается увеличение числа продуктов для прямой работы с Wayland и проведение интеграции поддержки технологий Wayland в дистрибутивы. В частности, в состав Ubuntu 13.04 планируется включить реализацию графического окружения, построенного поверх дисплейного сервера Wayland и композитного сервера Weston. Переход на Wayland позволит обеспечить бесшовную работу единого графического режима на протяжении всех стадий работы дистрибутива, включая загрузку, вход в систему и завершение работы. Кроме того, вследствие более простой архитектуры и исключения лишней буферизации, будет достигнуто увеличение производительности вывода на экран. Выполнение классических X11-приложений будет доступно по умолчанию благодаря интеграции прослойки XWayland.

Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон.

В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек GTK3+, Qt 5, SDL, Clutter и EFL (Enlightenment Foundation Library). К сожалению, из-за наличия прямых обращений к библиотекам X11 не все приложения на базе вышеотмеченных тулкитов смогут без переработки кода работать поверх Wayland. Например, из 22 протестированных GTK-приложений, доступных по умолчанию в меню Ubuntu, под управлением Wayland заработали только 9, так как оставшиеся 13 использовали функции Xlib. Тем не менее, уже наблюдается прогресс в проведении чистки приложений от прямого обращения к Xlib, например, разработчики проекта KDE приступили к осуществлению плана по обеспечению работы KDE и KWin поверх Wayland.

В рамках проекта Weston развивается один из прототипов реализации композитного сервера. Подчёркивается, что это лишь одна из реализаций (по аналогии с оконными менеджерами), так как в роли композитного сервера может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в таких существующих композитных менеджерах для X11, как KWin и Compiz. Взаимодействие с аппаратным обеспечением, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. Композитный сервер Weston может работать не только с использованием DRM-модуля ядра Linux, но и поверх X11 или поверх другого композитного сервера Wayland.

Для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland и композитного сервера Weston развивается проект XWayland, позволяющий организовать запуск полноценного X.Org-сервера в роли клиента Wayland. Примечательно, что разработчики проекта X.Org планируют включить компонент XWayland в состав X.Org Server начиная с выпуска 1.14, который ожидается в марте 2013 года, что значительно упростит решение задач по интеграции X11-приложений в окружения на базе Wayland. Поддержку запуска X11-приложений планируется встроить непосредственно в композитный сервер Weston, который при попытке выполнения X11-приложения будет инициировать запуск X-сервера и связанных с ним компонентов XWayland. При таком подходе процесс запуска X11-приложений будет бесшовным и неотличимым для пользователя от запуска приложений, работающих напрямую с Wayland.

© OpenNet