Почему Wayland лучше?

Как недавно объявил Марк Шаттлворт, Ubuntu будет двигаться к использованию Wayland в качестве своего менеджера дисплеев.

Каковы самые большие различия между X11 и Wayland? Почему Wayland сделает Ubuntu лучше?

Вы можете увидеть страницу архитектуры Wayland, чтобы увидеть, как она отличается по дизайну. Он должен упростить весь графический стек, заставив все через стандартный стек GEM / DRM прямо в ядро ​​и управляя компоновкой.

Сравните это со стеклом X, где у вас есть бит и бобы повсюду. Некоторые из Х беспорядок был через гибкий дизайн, некоторые из них усиливают боли. Все композиторы (Compiz / Metacity / Mutter / KWin / etc) были добавлены в качестве запоздалой мысли. Они, по сути, взламывают, чтобы делать то, что X должен, вероятно, делать сам. Если вещи продолжают расширяться, как они были, мы доберемся до того момента, когда проект станет недостижимым.

В общем, когда есть аппаратная поддержка, она должна сделать весь стек более эффективным и менее болезненным для использования в стандартных настройках.

Однако есть несколько проблем, на которые я пока не видел средств правовой защиты:

  • X довольно осведомлен о сети. Вы можете отправлять окна на другие компьютеры, вы можете иметь несколько экранов с удаленными входами и всевозможные напуганные вещи. Это может показаться довольно специалистом, но это широко используемая технология. Wayland выглядит довольно локально и статично в сравнении.

  • Существует также поддержка драйверов. Драйверы с закрытыми исходными кодами еще не поддерживают технологии KMS / shared-GEM / shared-DRM, которыми обладает Wayland. Пурист может быть в порядке с Нуво, но кто-то, кто платит 100-400 фунтов стерлингов на высокопроизводительной 3D-графической карте, не будет доволен плохой работой 3d, которую они получили бы с текущим открытым драйвером.

    Обновление: Nvidia работает над поддержкой Wayland и Mir .

В любом случае, мы говорим о годах (возможно, от двух до трех ИМО), прежде чем что-либо подобное готово к стабильному тестированию и даже дольше, прежде чем вам придется отказаться от X (если Уэйленд явно лучше).

Между X и Wayland существует множество различий. Вероятно, самый большой из графической стороны заключается в том, что Wayland не делает никакого рисунка .

X имеет два API-интерфейса рисования. Один из них является частью основного протокола X11, который является древним, бесполезным и никто не использует. Другой – расширение XRender, которое обеспечивает современные сложные операции, среди прочего, такие как градиенты. Это то, что использует Каир. X также имеет API-интерфейсы рисования шрифтов.

У Wayland нет API-интерфейсов чертежа. Клиент Wayland получает дескриптор буфера DRM, который в основном является указателем на некоторую графическую память; Wayland не знает и не заботится о том, как клиент обращается к этому буферу. В терминах X это означает, что все приложения получают прямой рендеринг – запросы на рисование не нужно проходить через сервер.

Единственный рендеринг Wayland – это копирование буферов клиента на экран.

Что касается преимуществ, Wayland намного менее сложна, чем X, что должно облегчить его поддержание, хотя некоторые из этих простот связаны с повышением сложности (например, как на самом деле привлечь этот буфер, прозрачность сети) к другим слоям стек. Делая клиенты ответственными за все их рендеринг, клиенты могут быть умнее в отношении вещей, таких как двойная буферизация.

Существуют и другие преимущества вне графики. Например, гораздо проще использовать приложения для песочницы.

Основное отличие в моих глазах заключается в том, что Wayland ближе к ядру, чем к X-Server. С переносом графических драйверов из X в ядро ​​(известное как настройка режима ядра, KMS) Wayland планирует использовать эту новую функциональность для замены X. Вы можете ожидать увидеть следующее …

Меньше отпечатка, чем X – потому что дисплей обрабатывается ядром Wayland, не нужно будет внедрять столько, чтобы стать пригодным для использования. Это происходит в обоих направлениях, поскольку я подозреваю, что X-пересылка (посмотрите на один экран на другом ПК) может исчезнуть с X.

Возможности KMS: возможность изменять разрешение экрана без перезапуска сервера X (хотя я считаю, что это было исправлено в X некоторое время назад, по крайней мере для nvidia), консоль отладки на панике ядра для чипсетов Intel (переход в нуво), если вы входите в Что-то в этом роде.

Может ли кто-нибудь исправить меня по любому поводу, если я ошибаюсь?

Проще говоря, надежда на лучшую графику (меньше багги, быстрее, проще в использовании). Даже когда-нибудь это может быть возможно в один прекрасный день. Я лично думаю, что это, по крайней мере, оживит вещи, как всегда.

Все другие сообщения подчеркивают преимущества Wayland, но это не все хорошо. Самое большое преимущество X over Wayland в том, что X работает по сети. X прозрачен в сети, вы можете отобразить окно или с XDMCP полный сеанс на терминале, пока фактическая программа работает на другой, обычно более мощной машине. Что-то вроде Wayland, идея прозрачности сети исчезла. Может быть, в наши дни это не так уж и много, с быстрыми сетями и другими протоколами, такими как VNC и RDP, просто подумал, что я упомянул об этом для полноты.

Две мелочи, которые каждый может заметить довольно быстро в повседневной работе:

  • Уэйленд покончил с papercuts, которые считались слишком трудными для исправления в X11. Известный пример: использование функциональных клавиш (громкость динамика, яркость дисплея и т. Д.), Когда открыто меню или включен экран блокировки.
  • Wayland лучше на устройствах ввода. Во-первых, есть еще много возможностей для настройки сенсорных панелей, включая постоянную настройку «щелчок по клику».