LINUX.ORG.RU

Wayland — разъяснения от разработчиков KWin

 , ,


0

3

Дисклаймер. В связи с тем, что очень многие (почти все) здесь не понимают, зачем нужен Wayland, пишу в новости, благо есть источник, где кое-что разжёвано. Текст чуть-чуть подсократил, чтобы не захламлять.

Итак, приступим.

  1. В Wayland может быть реализована сетевая прозрачность.

    Это дело конкретного композитора. Всё дело в ошибочном понимании фразы «в Wayland нет сетевой прозрачности». Правильное понимание этой фразы таково: «спецификация Wayland не занимается сетевой прозрачностью и не определяет её». Композиторы могут быть выполнять локальную отрисовку, могут быть сервером и передавать картинку по сети (хоть на много машин одновременно), а могут делать и то и другое. Те, кто думают, что в Wayland сетевой прозрачности быть не может вообще, ошибаются.

  2. Сетевая прозрачность X11 не подходит для современных приложений.

    Она давно устарела, будучи сделанной с расчётом на то, что приложения используют простые команды для отображения содержимого окна, и эти команды можно отправлять по сети. Когда-то это было разумно, но современные приложения не используют X11 для рендеринга, они используют такие технологии как Cairo, Clutter, QPainter (Raster) или OpenGL. В этом случае X11 вынужден отправлять по сети готовую картинку, а для этой ситуации есть технологии, которые делают это гораздо лучше, чем X11. Сетевая прозрачность в X11 померла и так, без участия Wayland.

  3. X11-приложения будут поддерживаться.

    Никто не хочет ломать систему, переход на Wayland будет произведён если и только тогда, когда X11-only приложения будут в ней хорошо работать (через слой совместимости). Сетевую прозрачность X11, очевидно, тоже можно будет использовать.

  4. Сетевой прозрачности не место в оконной системе. Если вы хотите быстрой сетевой прозрачности, ей место в тулките виджетов.

    Оконная система должна просто заниматься отображением картинки, которую ей дали. Она не знает ничего про виджеты, у неё есть только картинка, которую гнать по сети достаточно накладно. Сетевой прозрачности когда-то было место в X11 только потому, что X11 был не только оконной системой, но ещё и тулкитом виджетов.

  5. «Дистибутивы выкинут иксы, моё любимое X11-only приложение не заведётся!»

    Для этого уже есть слои совместимости (X11 приложения можно запускать из композитора Wayland). Поддержку X11 никто не выкинет из дистрибутивов, пока она будет востребована, даже Mac OS X всё ещё поддерживает X11 для совместимости. Постепенно количество X11-only приложений будет уменьшаться (переписывание, естественная смерть), и даже если из вашего дистрибутива поддержку X11 уберут, вы всегда сможете её собрать сами.

Прекратите повторять ошибочные утверждения.

P.S. Отвечу на вопрос «Зачем вообще нужен Wayland, давайте улучшать X11».

Такие (или аналогичные) изменения даже если были бы возможны в X, всё равно бы сломали X11 и дали несовместимый с ним X12. Без слоя совместимости обойтись невозможно, а сам X12 тоже был бы не сахар, так как писался бы с оглядкой на X11. И чем это было бы лучше того, что мы имеем с Wayland?

В основе X11 лежат архитектурные решения более чем двадцатилетней давности (см выше). Так делать уже не надо, очень много функциональности иксов перешло в тулкиты, ядро, D-Bus, и другие системы. Замену легче написать с нуля, которая делает только свою прямую работу, а не пытается объять всё.

>>> Подробности

★★★★★

Проверено: svu ()
Последнее исправление: cetjs2 (всего исправлений: 11)
Ответ на: комментарий от ChALkeR

Иксы это не столько отрисовка, сколько взаимодействие. Что предлагает вейленд на смену системе ввода, стандартам обмена сообщениями?

Совместимость с X будет тянуться вечно, поэтому wayland станет очередной надстройкой (очередным иксовым костылем), но никак не самостоятельной вещью.

baverman ★★★
()

>Такие (или аналогичные) изменения даже если были бы возможны в X, всё равно бы сломали бы X11, и был бы несовместимый с ним X12. Слой совместимости был бы нужен всё равно. Плюс X12 тоже был бы не сахар, так как писался бы с оглядкой на X11. И чем это было бы лучше того, что мы имеем с Wayland?

Преамбула: есть такая штука XCB. Фишка XCB в том, что клиентский биндинг к протоколу генерится скриптом из набора XML-файлов, этот протокол описывающих. В современных дистрибутивах традционную Xlib уже давно заменили на реализацию, основанную на XCB

Амбула: БЫл проект XCB-server. Не знаю, в каком он сейчас состоянии, но идея была в том, что из тех же xmlек генерить сервер. В результате, с помощью простых манипуляций с описанием протокола можно было бы попробовать решить значительную часть проблем X11, сохранив значительную совместимость с предыдущей версией. Но для этого нужно, чтобы иксы снова стали тем, ради чего они создавались, - протоколом удаленного доступа, не обремененным тонной графических драйверов, DRI и прочими расширениями, навешанными на них сбоку.

Так что я считаю, что разработка X12 (если за нее все-таки кто-то возьмется) не должна противопостовляться разработке Wayland

http://xcb.freedesktop.org/XCBToDo/#index1h3

Замену легче написать с нуля

вяленд не пишется с нуля, он очень сильно использует код разных модулей Xorg

annulen ★★★★★
()
Ответ на: комментарий от ChALkeR

>Иксы для этого кто-то ещё использует? Конкретно кто?

Ну я например использую. Через ADSL NX работает гораздо лучше VNC

annulen ★★★★★
()
Ответ на: комментарий от baverman

Отрисовка должна быть отдельно, приготовление картинки — отдельно, обмен сообщениями — отдельно.

А то давайте в иксы ещё и графику из ядра назад запихаем. Да что уж там, давайте всё ядро в иксы включим. И емакс.

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от ChALkeR

>Native (X11) медленнее в 8 раз

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

annulen ★★★★★
()
Ответ на: комментарий от annulen

>Замену легче написать с нуля

вяленд не пишется с нуля, он очень сильно использует код разных модулей Xorg

Вейланд — это, прежде всего, протокол, и только потом его референс-реализация. Я говорю именно про протокол.

Протокол по отношению к X11 написан с нуля.

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от ChALkeR

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

PolarFox ★★★★★
()
Ответ на: комментарий от annulen

Native vs Raster, если пройдёшь по цепочке ответов выше, пошёл от рассуждения про обезжиривание Qt5.

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от ChALkeR

Иксы для этого кто-то ещё использует? Конкретно кто?

Ты издеваешься? Вся (вся!) работа с окнами сделана через обмен сообщениями между клиентскими и рутовым окнами. Любой, самый задрипанный wm опирается на эти стандарты.

baverman ★★★
()
Ответ на: комментарий от ChALkeR

> Для этого есть fd.o.

Я не буду говорить про отношение к стандартам fd.o со стороны разрабов гнома и кде. Но таки стандарт вейленда на fd.o не оговаривает многие вещи, а дьявол кроется в деталях.

Простой пример — вейланд не знает, где происходит ренедеринг ­— на gpu (фреймбуффер в gpu) или в cpu (фреймбуффер в ram). Копирование между ram и gpu — не такая уж маложручая операция, поэтому если сервер и клиенты будут использовать разные способы рендера, мы получим тормоза. Реализация с fd.o рендерит на gpu (используя линукс-специфичные функции).

PolarFox ★★★★★
()
Ответ на: комментарий от ChALkeR

>Иксы для этого кто-то ещё использует? Конкретно кто?
Напомни мне, как в нативных wayland-приложениях скопипастить текст или картинку.

x3al ★★★★★
()
Ответ на: комментарий от x3al

Да хрен с ней, с копипастой. Как раскладку переключить или оконный менеджер сменить? Оконный менеджер теперь меняется только вместе с сервером, ога.

PolarFox ★★★★★
()
Ответ на: комментарий от x3al

У gtk на контролшифт, а у кутэ по контролпробел.

PolarFox ★★★★★
()
Ответ на: комментарий от x3al

Раскладка в теории переключается тулкитными средствами.

А где уверенность, что это сделано не через иксы? Насколько знаю, в gdk, реализация раскладок очень плотно повязана на X.

baverman ★★★
()
Ответ на: комментарий от baverman

UIM в принципе не зависит от иксов (есть ncurses-версия) и умеет GTK и Qt через внеиксовые механизмы (gtk-im-module и qt-im-module соответственно).

x3al ★★★★★
()
Ответ на: комментарий от x3al

uim

Здоровская штука, не слышал о такой. Но насколько понял, от нее редко кто жестко зависит. Например у меня, он даже не установлен.

baverman ★★★
()
Ответ на: комментарий от Aceler

Имелись ввиду иксы, очевидно.

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от annulen

Ну понятно, что не в том смысле. Но ведь тоже протокол.

Wayland is a protocol for a compositor to talk to its clients as well as a C library implementation of that protocol.

ChALkeR ★★★★★
() автор топика

я за Wayland! Теперь еще более!

uju ★★
()

Мир, дружба, Wayland!

renya ★★★★★
()
Ответ на: комментарий от annulen

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

baverman ★★★
()

adriano32, спасибо за правки.

Только вот кавычки теперь получились разные. Поправлю на треугольные. Кстати, где это прописано на ЛОРе? Если есть смысл — буду использовать треугольные.

А фразах „{вашего дистрибутива}“, „X11-only {программы}“ имелось ввиду то,

ChALkeR ★★★★★
() автор топика

Во всём этом, вполне мб и не плохом, есть 1 момент:

Wayland создаётся исключительно под linux. Без возможности портировать его куда бы то ни было ещё. Итого мы получаем венду, с её wayin23 и rdp с поддержкой х11 (у венды оно есть, ога) конечно же гг.

Ygor ★★★★★
()
Ответ на: комментарий от ChALkeR

>Кстати, где это прописано на ЛОРе?

Вот и выросло поколение не имеющее ни малейшего представления о типографских правилах по расстановке кавычек в России.

fat_angel ★★★★★
()
Ответ на: комментарий от fat_angel

Ты намекаешь на то, что лапки, к которым я привык, надо ставить только внутри треугольных?

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от fat_angel

По поводу представления: я знал, что у нас используются треугольные (ёлочка) и лапки. Писал лапками.

При письме от руки, опять же, используют лапки.

JB вон вообще вырезал кавычки и заменял на технические.

ChALkeR ★★★★★
() автор топика
Ответ на: комментарий от ChALkeR

>JB вон вообще вырезал кавычки и заменял на технические.

В его неадекватности уже вроде как никто не сомневается?!

fat_angel ★★★★★
()

Ну вот не доверяю я разработчикам, которые утверждают нечно вроде «оно устарело 20 лет назад, починить нельзя, мы все сломаем, напишем заново, но для совместимости обязательно подопрем наше поделие костылями».

kernelpanic ★★★★★
()
Ответ на: комментарий от ChALkeR

Я сторонник использования буквы «ё» только в неоднозначных местах, где использование «е» искажает смысл.

fat_angel ★★★★★
()
Ответ на: комментарий от fat_angel

>Вот и выросло поколение не имеющее ни малейшего представления о типографских правилах по расстановке кавычек в России.

Вот и выросло поколение, не имеющее ни малейшего представления о пунктуационных правилах по обособлению причастных оборотов в русском языке.

anonymous
()
Ответ на: комментарий от anonymous

Да-да, по русскому у меня всегда была тройка.

fat_angel ★★★★★
()

>Композиторы могут быть рисующие локально, могут быть сервером и гнать картинку

так картинку, или команды отрисовки?

dikiy ★★☆☆☆
()
Ответ на: комментарий от kernelpanic

Ты не думал о том, что попытка починить выльется в тот же самый Wayland только в рамках проекта X.org? Ты читал новость?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.