Проблемы X11 и их решения в Wayland
10 июня 2013 года
Эрик Гриффит (Eric Griffith), совместно с Дэниэлем Стоуном (Daniel Stone), бывшим член совета директоров X.Org Foundation, опубликовал статью, детально рассказывающую о том, в чем заключаются проблемы X11 и как они решены в проекте Wayland. Кроме того, в статье также рассмотрены основные мифы и заблуждения, сложившиеся вокруг X11 и Wayland.
Например, на сегодняшний день сетевая прозрачность X может рассматриваться как миф, так как в реальных условиях данная особенность протокола уже давно неприменима. В своей основе X-ы и DRI-1 обеспечивают сетевую прозрачность, но никто уже не ограничивается ими, а повсеместно используемые DRI-2 и средства работы с разделяемой памятью, не говоря о дополнительных надстройках вида D-Bus и API нотификации, не поддерживают работу по сети. Но даже в идеальных условиях сетевая прозрачность превращается в кошмар для пользователя с учётом синхронного характера работы Xlib.
С момента выхода X11 прошло более 25 лет, для обеспечения поддержки технологий, ставших актуальными за это время, таких как вывод видео, OpenGL и подключение нескольких устройств ввода и вывода, протокол оброс значительным числом расширений. Без встроенных средств версионного контроля на уровне привязки функциональности система расширений X11 крайне неэффективна. Версионный контроль X-расширений реализован на уровне клиента, т.е. если программа поддерживает одну версию расширения, а тулкит - другую, то выбор расширения непредсказуем. Например, браузер Rekonq поддерживает Xinput 2.2, Kdelibs - Xinput 2.0, а плагин Flash - ввод через Core X11, но в результате для работы приложения будет выбрана только одна из версий Xinput и не факт, что это будет версия необходимая для работы и поддерживаемая всеми компонентами.
При этом многие системы неоправданно усложнены, например, предоставляется четыре подсистемы ввода Core X11, Xinput 1.0, Xinput 2.0 и Xinput 2.2, зависимости между которыми настолько запутаны, что особенности их взаимодействии понимают, по словам Дэниэля Стоуна, только три человека. Другим примером усложнённости является изначально избыточная, раздутая и при этом невостребованная функциональность, в частности, тулкит для работы с графическими примитивами давно никем не используется, в состав до недавних пор входили реализация собственного сервера печати и бинарного интерпретатора ELF, COFF и a.out, что превращало X-ы в подобие операционной системы.
Главной концепцией X-ов является понятие "всё является окном", но нет разделения окон на типы, что приводит к тому, что хранитель экрана по сути является обычным окном, развёрнутым на весь экран и блокирующим доступ к другим окнам путем перехвата активного ввода. Похожим образом реализованы всплывающие окна, поэтому они конфликтуют с хранителем экрана, также желающим получить эксклюзивный контроль ввода и не получающим его до закрытия всплывшего окна. Отсутствие необходимых средств синхронизации содержимого окон, выводимых с использованием расширения Composite, приводят к появлению артефактов в ситуации необходимости прямого вывода содержимого некоторых областей, например, при отображении видео (в частности, вывод Flash-плагина и основное окно браузера выводятся без синхронизации).
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.