Статус разработки прослойки для обеспечения работы X11-приложений поверх Wayland
16 июня 2012 года
Тьяго Виньятти (Tiago Vignatti) опубликовал развернутое описание принципов работы и информацию о текущем состоянии развития компонента XWayland, предназначенного для обеспечения выполнения обычных X11-приложений в окружении на базе Wayland и композитного сервера Weston через организацию запуска полноценного X.Org-сервера в роли клиента Wayland. В частности, XWayland может быть использован для запуска приложений, использующих GTK2+ и Qt 4, а также для программ вызывающих функции Xlib.
Интеграция обеспечивается через использование в X.Org-сервере специальных драйвера и бэкенда, которые подменяют уровень взаимодействия с оборудованием на прослойку для вывода через Wayland. Дополнительно в состав компонентов XWayland включён отдельный оконный менеджер, добавляющий обрамление и строку с заголовком для окон X11-приложений, и менеджер буфера обмена, позволяющий обеспечить функции выделения и копирования текста. Все сформированные X-окна перенаправляются в форме битмапов в буфер DRM при помощи фиктивного видеодрайвера, что позволяет обрабатывать вывод X11-программ на стороне Wayland точно также как вывод обычных Wayland-клиентов и даёт возможность обеспечить бесшовную интеграцию с X-сервером, а также свести к нулю паразитную нагрузку за счёт избавления от необходимости преобразования протоколов.
Поддержку запуска X11-приложений планируется встроить непосредственно в композитный сервер Weston, который при попытке выполнения X11-приложения будет инициировать запуск X-сервера и связанных с ним компонентов XWayland. Для запущенных в дальнейшем X11-приложений будет использована уже запущенная копия X-сервера. Сам процесс запуска X11-приложений будет бесшовным и неотличимым для пользователя от запуска приложений, работающих напрямую с Wayland. Для организации ввода, по аналогии с организацией вывода, для X-сервера создаются фиктивные клавиатура и устройство управления указателем. В настоящее время функциональность XWayland уже доведена до рабочего состояния (см. видеоролик ниже).
Из других достижений развития Wayland и Weston, представленных в этом месяце, можно упомянуть: обеспечение поддержки виртуальных экранов; добавление поддержки анимированных курсоров и средств для изменения оформления курсора; поддержку ведения лога; реализацию часов для пользовательской оболочки desktop-shell на базе Weston.
Напомним, что Wayland представляет собой протокол взаимодействия композитного сервера и работающих с ним приложений. Клиенты самостоятельно выполняют отрисовку своих окон в отдельном буфере, передавая информацию об обновлениях композитному серверу, который комбинирует содержимое буферов отдельных приложений для формирования итогового вывода с учётом возможных нюансов, таких как перекрытие окон и прозрачность. Иными словами, композитный сервер не предоставляет API для отрисовки отдельных элементов, а оперирует только с уже сформированными окнами, что позволяет избавиться от двойной буферизации при использовании высокоуровневых библиотек, таких как GTK+ и Qt, берущих на себя работу по компоновке содержимого окон. Взаимодействие с аппаратным обеспечением, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM для i915 и TTM для radeon и nouveau) графических карт, может производиться напрямую через модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя. В настоящее время поддержка прямой работы c Wayland уже реализована для библиотек Gtk3+, Qt 5, SDL, Clutter и EFL (Enlightenment Foundation Library).
В рамках проекта Weston развивается один из прототипов реализации композитного сервера. Подчёркивается, что это лишь одна из реализаций (по аналогии с оконными менеджерами), так как в роли композитного сервера может выступать любой другой продукт, поддерживающий протокол Wayland. Например, в настоящее время ведётся работа по обеспечению поддержки Wayland в таких существующих композитных менеджерах для X11, как KWin и Compiz. Композитный сервер Weston может работать с использованием DRM-модуля ядра Linux, поверх X11 или поверх другого композитного сервера Wayland.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.