Почему Вейленд лучше?

177

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

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

Hillar
источник
5
По состоянию на декабрь 2013 года , похоже , на базе Unity Ubuntu будет использовать сервер отображения Мира вместо основанного наборщика Wayland , начиная с Ubuntu 14.10: ссылка ссылка Других вариантов Ubuntu, вероятно , перейти на Wayland: ссылку
Диего
4
Вот отличное видео, объясняющее X и почему люди хотят заменить его: youtube.com/watch?v=cQoQE_HDG8g
Джейсон
Ubuntu 18 (Bionic) теперь будет использовать xorg по умолчанию, но Wayland по-прежнему доступен на экране входа в систему: blog.ubuntu.com/2018/01/26/…
Kris
Я бы сказал, X лучше. Я бы не стал вдаваться в технические вещи. Но я просто скажу, что у меня пропущены кадры на YouTube с Wayland, если я изменю размер окна или выхожу / выхожу из полноэкранного режима. С X проблем нет. Хотя скорость одинакова. Также на Wayland курсор мыши чувствует себя свободнее, чем на X. X по-прежнему мой номер 1
Лука

Ответы:

136

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

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

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

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

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

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

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


2018 обновление . 17.10 использовал Wayland в качестве сервера дисплея по умолчанию (если у вас не было закрытого драйвера или драйвера, который его не поддерживал или не нуждался в X). 18.04 и 18.10 оба используют X в качестве глобального значения по умолчанию (хотя вы можете установить Wayland).

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

Оли
источник
21
Прозрачность сети слишком раздута по нескольким причинам. 1. Pure X forwarding достаточно быстр по локальной сети. Через Интернет raw X не работает из-за задержки. Чтобы получить приличную производительность, вы должны использовать сторонние протоколы, такие как NX или VNC. 2. И NX, и VNC - сложная задача для установки из-за архитектуры X. С Вейландом должно быть проще. 3. Немногие современные наборы инструментов используют код рисования X. Они просто рисуют себя в растровое изображение и отправляют его в X. Это точно так же, как Wayland и будет иметь те же характеристики сети.
Тимммм
4
Я согласен с пунктом 1, но по хорошей локальной сети X-forwarding неприкасаем для качества или производительности. Гораздо лучше, чем любая другая альтернатива в моем опыте.
Оли
1
По состоянию на 2013 г. ситуация с прозрачностью сети более ясна
Диего,
2
@poolie: Кажется, они передумали. ;-)
Пек
2
От BionicBeaver / ReleaseNotes : «X является сервером отображения по умолчанию. Wayland предоставляется в качестве технического предварительного просмотра и, как ожидается, будет сервером отображения по умолчанию в 20.04 LTS . Чтобы попробовать его, просто выберите Ubuntu on Wayland из cog в журнале входа. логи X.org теперь можно найти по адресу ~ / .local / share / xorg "[выделено мое]
Деннис Уильямсон
56

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

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

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

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

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

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

RAOF
источник
2
Похоже, Microsoft DirectX, как вещи?
Анвар
3
Я использую базовый API-интерфейс рисования протокола X11, потому что он быстрее, чем XRender.
этал-когомология
3
Я также получаю Microsoft wayes от Wayland и systemd. И нет, это не очень хорошая вещь. Они нарушают основные правила разработки программного обеспечения. В systemd только потому, что это проще для разработчиков systemd. В Wayland, потому что им нужны более быстрые игры (?) И рендеринг, и он выбрасывает много хороших вещей с этим.
Андерс
18

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

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

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

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

TGM
источник
4
KMS & GEM не перемещает графические драйверы в ядро, только некоторые небольшие части перемещаются в ядро ​​(биты, которые обращаются непосредственно к аппаратному обеспечению и должны быть в ядре, так что разные драйверы могут сосуществовать, например, запись в порты ввода / вывода и управление памятью). KMS & GEM уже используются X сегодня, по крайней мере, для современных драйверов с открытым исходным кодом (Intel, Radeon, Nouveau). Кстати: я серьезно сомневаюсь, что перевод графического драйвера в ядро ​​был бы принят Линусом;)
JanC
4
Да, и KMS никогда не требовалось для изменения разрешения экрана (это стало возможным с тех пор, как я использовал X более 10 лет назад), но оно позволяет использовать разные драйверы (например, драйвер кадрового буфера консоли, драйверы X и теперь драйверы Wayland) сотрудничать легче. Раньше для каждого из них не всегда было очевидно, в каком «состоянии» находится графическое оборудование в определенный момент времени, и использовались многие догадки или зависимые от драйвера проприетарные обходные пути.
Янв
1
Не совсем верно, что переадресация X исчезнет, ​​поскольку X все еще можно использовать в качестве клиента на Wayland. У wayland.freedesktop.org есть пример этого. Но X - довольно ужасный способ делать подобные вещи. Пришло время заменить его. Во многих случаях кажется, что такие вещи, как GTK с Бродвеем, были бы лучшим подходом.
Джо-Эрленд Шинстад
3
Расширение RandR позволяет изменять разрешение экрана без перезапуска X-сервера.
Аноним
14

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

Кристиан Худжер
источник
Это именно то, что я также считаю самым большим преимуществом X по сравнению с предложенным Wayland.
Крис Джейс
7

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

я делаю
источник
3

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

  • Уэйленд покончил с бумажными вырубками, которые считались слишком трудными для исправления в X11. Известный пример: использование функциональных клавиш (громкость динамика, яркость дисплея и т. Д.) При открытом меню или включенном экране блокировки.
  • Уэйленд лучше в устройствах ввода. Во-первых, существует множество опций для настройки сенсорных панелей, включая постоянную настройку «нажми и щелкни».
Нико Шлёмер
источник
1
Уэйленд хуже, если программа заблокирована по причине. Иметь разные wm - это хорошо. Я использую сеть X11 на регулярной основе (каждый день). Некоторая программа перестала работать в Wayland (я использую Ubuntu 18.04)
Anders