Спустя неделю после заявления о переходе на использование в будущем релизе Ubuntu в качестве интерфейса по умолчанию оболочки Unity вместо GNOME Shell Марк Шаттлворт рассказал в своём блоге об очередном революционном шаге: разработчики планируют перейти к использованию вместо X-сервера дисплейного сервера Wayland. Выбор Wayland с бэкендом на базе OpenGL обусловлен желанием обеспечить новый уровень графического оформления и визуальных эффектов, реализация которых при использовании классического X-сервера, по мнению разработчиков Ubuntu, чрезвычайно усложнена.

Для обеспечения задуманных функций на базе стандартного X-сервера потребовалась бы разработка X11-расширений, которые трудно совместить с базовыми целями X11 и которые требуют кардинальной переработки протокола X11. При использовании OpenGL задача существенно упрощается, но ценой данному шагу служит отказ от таких ключевых ценностей X11, как сетевая прозрачность (приложение может быть запущено на одной машине, а графический интерфейс сформирован на другой машине). Другими из рассмотренных вариантов были: адаптация композитной подсистемы из платформы Android, попытки убедить некоторых проприетарных вендоров открыть код своих продуктов и намерение написать собственный дисплейный сервер с нуля. В итоге, рассмотрев все плюсы и минусы, было решено остановиться на развитии кодовой базы проекта Wayland.

Wayland еще только развивается и не доведён до финальной стадии, поэтому работа предстоит большая и проект его внедрения в Ubuntu носит долгосрочный характер. Из предстоящих работ отмечается развитие открытых видеодрайверов и поддержки KMS-модулей ядра. Появление первых пригодных для тестирования результатов работы ожидается приблизительно через год. При удачном стечении обстоятельств Wayland может быть интегрирован по умолчанию в Ubuntu ориентировочно в 2012 году, но при возникновении непредвиденных проблем реализация проекта может затянуться.

Переход на Wayland не станет ломать сложившиеся устои и не приведет к перевороту в мире свободных десктоп-приложений: для запуска классических X-приложений в окружении Wayland планируется разработать специальную прослойку для обеспечения режима совместимости. Разработчики Ubuntu также готовы оказать помощь проектам GNOME и KDE в процессе адаптации данных десктоп-окружений для работы поверх Wayland.

Wayland отличается от классического X-сервера тем, что на уровне сервера выполняется только переадресация всех окон, а все операции рендеринга и управления окнами производятся на стороне клиента и передаются для обработки серверу со встроенным композитным менеджером. Сервер не поддерживает API отрисовки и оперирует только с уже сформированными окнами, что позволяет избавится от двойной буферизации, при использовании таких библиотек как GTK+, Qt и Clutter. Все операции отрисовки производятся силами дополнительных библиотек, например, OpenGL ES, FreeType и Cairo. Взаимодействие с аппаратным обеспечением, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM) графических карт, производится через KMS-модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя.

Дополнение 1: Один из основных разработчиков Compiz положительно отозвался о заложенных в wayland идеях и даже решил в будущем выделить в отдельный бэкенд код, связанный с X11, и написать дополнительный бэкенд для работы Compiz поверх Wayland.

Дополнение 2: Представитель компании NVIDIA сообщил, что в настоящее время у NVIDIA нет планов по обеспечению поддержки wayland в своих проприетарных драйверах (wayland работает с OpenGL ES-совместимыми драйверами, поддерживающими KMS и libdrm).

Источник: http://www.opennet.ru/opennews/art.shtml?num=28544