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)

Ответ на: комментарий от bakugan

Кто? Тут 30 страниц криков «Иксы не нужны». Про медленно обманули тебя. :)

Проблема в том, что про wayland вообще рано говорить, он пока нихрена не умеет и даже не предлагает путей, как это должно быть. Декорации окна силами самого приложения? Вы это серьёзно? И эти люди против зоопарка...

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

Это лишняя сущность.

В схеме с модулем: тулкит → специальный бэкенд для поддержки модуля (локально его использовать — зло, см выше) → прослойка (модуль в иксах в случае иксов) → сеть → рендеринг на клиенте тулкитонезависимым способом.

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

У первого варианта плюс может быть один: рендеринг будет независим от тулкита. Такое разделение логики и представления почти автоматически даст возможность рендерить Qt-приложения через GTK-морду и наоборот. Но с этим и так-то туго, без работы по сети, так что это очень маловероятно. Я сомневаюсь, что разработчики тулкитов договорятся о единой высоуровневой прослойке для отрисовки всего (низкоуровневые, по сравнению с тем, про что я говорю, вроде XRender, не особо интересны), а без неё твоя схема нереализуема. Но если договрятся — то это тоже хороший вариант, даже очень.

Второй вариант при небольшой докрутке можно использовать хоть сейчас.

Разница именно в нереальности первой схемы.

Повторю на всякий случай: речь идёт именно о высокоуровневом протоколе, а не об отрисовке и композиции переданных картинок. Только такой протокол будет максимально быстр и даст возможность подхватывать стиль и настройки клиента.

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

>Декорации окна силами самого приложения? Вы это серьёзно? И эти люди против зоопарка...


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

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

>Когда будут хотя бы драфты, тогда и будет, что обсудить.

Им наверно у тебя нужно было спросить с чего начинать чтобы ты мог обсудить а не осудить, корона не жмет ? ;-)

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

В прямом, HTML нормально всё рисует, использует кеширование, не тормозит, при этом далёк от идеала — многое, очень многое делается ненавистными вам пиксмапами, и никто не умер, этот ваш веб живёт и здравствует и подыхать, к сожалению, не собирается.

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

Кто их осуждает? Не сочиняйте, пожалуйста.

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

>Ясно что в протоколе должен быть механизм при помощи которого клиент и сервер договариваются — кто из них занимается декорацией окон.

X сервер не занимается декорацией окон.

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

что html нормально рисует? когда это html умел кешировать? (если забыть про local storage из html5). От идеала он не просто далек, а ужасно далек, поскольку действующие стандарты с одной стороны никого не устраивают и каждый приделывает те фичи, которые ему нравятся и хочется. с другой стороны почти никто действующие стандарты толком не поддерживает. (сколько лет понадобилось, чтобы простенькие тесты браузеры начали в соотвествии со стандартами показывать?)

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

Потому что в тырпрайзе есть такое правило — если что-то работает? то не трогай. Вот если Вы станете преподавателем MIT, то сможете направлять студентов на нигилистические проекты типа wayland.

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

Я прекрасно понимаю все его недостатки, но ведь работает? Работает, вроде. А кеширование этих ваших пиксмапов на уровне HTTP вполне работает.

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

Веб-браузер вместо X11 это такой ужас и кошмар, что лучше этого будето что угодно, да хоть Windows XP.
Кстати, тебя никогда не смущал тот факт, что твой браузер сжирает СОТНИ МЕГАБАЙТ ОЗУ?

quantum-troll ★★★★★
()
Ответ на: комментарий от geekless

Да, логичнее. Но тогда будет двойной расход памяти: в приложениях (оно в любом случае должно знать что нарисовано) и в иксах. А так иксы могут хранить только текущее состояние экрана. В win7(в интерфейсе aero) например окно не перерисовывается.

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

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

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

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

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

farafonoff ★★
()
Ответ на: комментарий от quantum-troll

На нормальных сайтах (желательно без js) не сжирает. Опять же, что вы цепляетесь к частности? Пример приведён как прецедент, любому ясно, что веб-технологии далеки от идеала.

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

Я вообще не понимаю людей, сравнивающих VNC и X11, ибо тёплое и зелёное, поэтому даже и говорить ничего не буду

Binary ★★★★★
()

Шаттлворт - известный пиарщик. Его убунта не содержала в себе никаких инноваций, но хорошо рекламировалась. Поэтому его запись в блоге о том, что «за Waayland будущее», не стоит воспринимать серьёзно.

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

«Тут 30 страниц криков „Иксы не нужны“.»

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

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

А тебе никогда не приходило в голову, что баг не правят, потому что никого, кроме как троллей, он не задевает? :) Вот лично у меня к нему именно такая позиция, я даже не задумывался, могу ли что-нибудь с этим сделать.

Ну и второе, было бы желание, но нынче все гонят время, надо быстрее и быстрее, оттуда и веб этот костыльный выполз, потому что людям надо сделать чтобы работало с наименьшими затратами, а дальше — хоть трава не расти. А ведь если SaaS и имеет право на жизнь, то через протокол, похожий на X11, но никак не через HTTP. Сугубо моё ИМХО, конечно.

Binary ★★★★★
()
Ответ на: комментарий от quantum-troll

X11 тоже сжирает сотни мегабайт озу. От драйвера зависит. А в браузере зависит от сайтов. Кроме того, ты же хочешь чтобы скроллинг страницы проходил мгновенно?

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

> А тебе никогда не приходило в голову, что баг не правят, потому что никого, кроме как троллей, он не задевает?

Баг есть баг. В трекере он есть, тролли написали даже частичный патч, а нормальный патч невозможен. Кроме того, переключалка нужна лишь малому числу пользователей линукса вообще, что ее теперь - выкинуть совсем?

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

>Потому что в тырпрайзе есть такое правило

Это очень хорошее правило если лень чем либо заниматься, но оно ведет к стагнации.

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

>Проще поставить вин 7 под которую и у амд все работает и оптимус пашет

Маздай некошерен, тем более семёрка, там скучно и уныло.

и двигунов куча.

Куча 2д, 3д в виде биндингов к некошерным ЯП а конвертеры пока не развиты.

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

>> Маздай некошерен, тем более семёрка, там скучно и уныло.

Обои скучные? :)

Внутренняя архитектура лажовая и всё настроено под пользователя идиота, но я рад что тебе там понравилось;)

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

>Не кошерные - значит созданные свиньями и для свиней?

Это если говорить про жрачку, а у нас форум айтишный и это выражение не имеет отношения к какой-то нации. Понимай как «написанные на сях (и плюсах) для СИонистов».

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

Да. С родителями построили новый дом рядом со старым, переехали в новый и старый разрушили. Как я понял создатели вялого хотят поступить также.

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

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

quantum-troll ★★★★★
()
Ответ на: комментарий от Elemir

Старый, неудобный который было проще построить заново чем пытаться переделать.

Я не оправдываю вялого, мне просто не нравится аргумент работает не трогай, без оглядки на то как работает.

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

Иксы в таком случае лучше сравнивать с большим заводом, старым, крепким, с кучей помещений, половина из которых заброшены.

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

Нравится он или нет, но писать что-то заново это давно не MIT-way. Хватит уповать на студ. проекты ведущих американских ВУЗ'ов в таких делах.

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

И что ты скажешь про лажовую архитектуру седьмых виндов? По конкретнее, пожалуйста. Про настройки под пользователя идиота даже спрашивать не буду.

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

offtop

Кстати, тут вот понадобилось j2j запилить. Ты каким транспортом пользовался? Что именно с конфочками было не то?

daemonpnz ★★★★★
()
Ответ на: offtop от daemonpnz

> Ты каким транспортом пользовался?

На своём сервере что-то поставил.

Что именно с конфочками было не то?

Не понял, как заходить на конфочки из-под транспортируемого аккаунта.

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

offtop

Счас попробовал зайти в linux-talks@conference.jabber.ru через Spectrum'овский xmpp/j2j транспорт. Вход в конфу осуществляется по такому адресу: linux-talks%conference.jabber.ru@адрес.транспорта.xmpp

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

> Да, логичнее. Но тогда будет двойной расход памяти: в приложениях (оно в любом случае должно знать что нарисовано) и в иксах.

Поверь мне, я предпочту перерасход памяти, если это поможет избавиться от морганий в 99% криво написанных приложений.

И уж тем более — при подключении с другой машины.

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

> Ты плохо меня читал. Я везде разделял разные способы сборки картинки.

Ладно-ладно. Уговорил.

По сравнению с уровнем, используемым в тулкитах, это всё баловство.

Вот тулкитами и надо заняться. Вейланд тем более не нужен.

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

> Хотя они в общем являются зависимыми от реализации X Server

У нас де-факто только одна распространённая реализация иксов. :)

У меня, например, Backing Store включен (судя по логу и по тому, что возвращает X Server в структуре при авторизации), но мое игрушечное приложение что-то не очень-то восстанавливает окно.

Вроде бы в xorg его сломали/выпилили. Мотивируя тем, что эта фича устарела, и нужно юзать композитинг.

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

Что тулкитами надо заняться и впилить в них нормальную сетевую прозрачность — факт. Благо модульность систем отрисовки сильно облегчает задачу.

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

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

Ты предлагаешь изобрети свои несовместимые «иксы» в кишках каждого тулкита? Феерично, просто феерично...

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

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

Для этого надо отделить рисовалку графики от менеджера шины сообщений. Т.е. пойти по пути фотона и микроядра.

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