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

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

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

Только вот этого в блобах тоже увидеть не судьба.

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

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

После KDE4 и (особенно) Gnome3 в успокаивающие заявления разработчиков о плавных переходах, сохранении совместимости и т.п. не верится совсем. То есть, вообще. Скореее, когда Wayland допилят до полуюзабельного состояния и немедленно начнут пихать во все дистрибутивы, все будет как всегда (выбирайте по вкусу): ретроградов - нафиг, у нас все работает, Y != Y.0 и т.д. Ну и хорошо. Пересидим годик-другой на Фре. Благо, опыт уже есть. А когда wayland начнут внедрять и там, под Линукс и его и прикладные программы под него уже допилят до вменяемого состояния.

P.S. Я не требую и не буду требовать ничего у дистростроителей и разработчиков свободного софта. Я не программист, и пользуюсь плодами их труда бесплатно, потому буду благодарно молчать в тряпочку. А с внедрением Линукса на рабочих местах в нашей конторе подождем еще годик-другой - админы, те ко всему приспособятся, а вот «просто пользователям» работать надо. И менять кривую, но привычную недоделку от MS на внезапно превращенный в творческом порыве из вполне приличной системы в кривую же недоделку «десктопный линукс» никто не будет.

gaestur
()

>Когда-то это было разумно, но современные приложения не используют X11 для рендеринга, они используют такие технологии как Cairo, Clutter, QPainter (Raster) или OpenGL.

Cairo в случае X11 делает рассещение сложных двухмерных примитивов на треугольники и трапезоиды и далее их гонит по XRender. Опять-таки при перерисовке экрана попадание в кеш при отрисовке одних и тех же примитивов частое. В этом случае примитив не шлется, а по сети идет только его идентификатор в кеше.

OpenGL всегда был и есть в Иксах. Его никто не запрещал. А что разве VNC не картинки гонит? А какая разница, гнать картинку (если нужно ее перегнать) по VNC или по X11? Передается же одно и то же! Только вот X Server графический фон для кнопки может хранить у себя, а когда кнопку надо будет перерисовать, то X Server'у надо только получить идентификатор пиксмапа. Или картинку из кеша прокси-уровня.

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

А карточка какая? Amd — всё работает замечательно, сам наблюдал. Nvidia — мне тут говорили, что всё работает хорошо.

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

во-первых линукса на десктопах никогда не существовало, а во-вторых когда джобс стал делать из freebsd macosx он первым делом выкинул эти протухшие иксы

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

Не выкинул, а заменил. Они всё ещё там, для совместимости.

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

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

Не возьмётся. Иначе бы X12 уже существовало. На предыдущих страницах была ссылка. Куча вещей, которые надо бы подправить, и даже это не сделано. Потому что всем пофиг, либо никто не может разобраться в этом гумне.

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

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

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

>Ядро вскоре после этого делает Oops

И почему я не удивлён?!

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

ЗЫ Расскажи мне как добица эскалации привелегий, ога.

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

Про игрушки я написал чуть выше.

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

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

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

Мне надо держать тулкиты всех приложений, которые я использую, на терминале? Или как предлагается?

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

Клиент может быть гораздо легче тулкита. Клиент даже может быть универасльным для Qt и Gtk.

В качестве примера, опять же, отошлю к Gtk через HTML5. Это не идеал, а скорее пруф оф концепт, но смысл ясен.

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

Читать до просветления

Взаимодействие с аппаратным обеспечением, например, проведение инициализации, переключение видеорежимов (drm modesetting) и управление памятью (GEM) графических карт, производится через KMS-модуль, работающий на уровне ядра, что позволяет обойтись без привилегий суперпользователя.

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

>все как всегда - чем больше человек не разбирается, тем больше он кричит и защищает старое

+100500

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

Что браузерный движок — оверкилл, тоже понятно. Там может быть нечто лёгкое. Но отдельное от Wayland, это другая задача и для других целей.

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

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

Перестаньте вспоминать про X12. Я много раз говорил и повторю, что никакого принципиального новшества он не несет. Вся архитектура так и остается, какая была в X11. Большая часть проблем, которые предлагались в X12 (это даже не proposal - это набор разрозненных пожеланий и заусенцев), носит только косметический характер, то есть от их решения никто не увидит прироста скорости или чего-то нового на экране, а вот обратная совместимость будет потеряна. Некоторые проблемы уже решены в XCB.

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

>во-первых линукса на десктопах никогда не существовало, а во-вторых когда джобс стал делать из freebsd macosx он первым делом выкинул эти протухшие иксы

У Эппл никогда не было Иксов как основы графической системы. Исторически. И никто не собирался их брать. И выбора у Джобса насчет Иксов никогда не стояло. А у нас есть иксы. Тоже исторически.

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

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

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

Так как тулкиты имеют слои абстракции для рендеринга, можно нарисовать для каждого бэкенд для любой системы.

Но использовать бэкенд, поддерживающий сетевую прозрачность, по умолчанию — верх глупости. Потому что это нужно мало кому, а на десктопе важнее прирост скорости в восемь раз за счёт отрисовки напрямую в картинку.

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

>На самом деле, если кому-то понадобится, можно будет написать обёртку в несколько строк над сетевой прозрачностью Qt/GTK (когда она будет) и над удалённым композитором Wayland, которая будет выбирать, по чему гнать.

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

Это что за геноцид маленьких и лёгких тулкитов? То есть на вяленом любой тулкит будет обязан копировать все сетевые фичи Qt/GTK, и где же тогда обещанное сбрасывание жира?

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

X12 в данном контексте — нарицательное название, не имеющие отношение к реальному положению дел. Ключевые слова: „если бы“.

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

>XCB
Кстати, насчёт XCB. Оно так весело начиналось, и где оно сейчас (ну кроме как в куске Xlib, бэкэнде для полутора WM и экспериментальном бэкэнде для Cairo?) Даже для OpenGL его юзать нереально. Причина, кстати, в драйверах.

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

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

Т.к. пользователи софта для производтсва графики и спецэффектов у нас теперь ненормальные? Эвона как.

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

Хомячку глубоко побоку, что там внутрях. А после семёрочки почти любое иксовое окружение (если не брать маргинальщину вроде гнома3 или юнити) просто реактивное.

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

Вообщем круто, да, за исключением одного, как вы правильно сказали это alha. И имх alh'ой всегда и будет.

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

Я тогда поторопился, есть мысль лучше — нарисовать стандарт, отвественный именно за это, и сделать его поддержку в Qt и Gtk (модульность же) как бэкенды рендеринга.

Примерно как было сделано с HTML5 в Gtk.

Я про это написал чуть выше.

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

А после wayland'a хомячки будут даже на маки будут смотреть как на говно. :)

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

Да ну? Гуй в семёрочка быстрее, чем i3 на моём железе.

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

Ага, а BSD так и останется RIP. И смысла в её поддержке нет. Если только сами некроманты-маргиналы не одумаются.

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

> А им rt рендеринг 3д графики из полигонов как собаке пятая нога.

Да-да, расскажи мне про OpenCL в готовых свободных драйверах.

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

Да ваш wayland и на линаксе то особо невиплся. Это не говоря уже о win и mac, где приходиться периодически использовать сетевые возможности X.

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

> Да-да, расскажи мне про OpenCL в готовых свободных драйверах.

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

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

>Или в BSD уже даже браузеры толком не работают?!

Как вам удобнее думать.

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

>X Window System — 1984.

X11 — 1987.
OpenGL — 1992.

Ой.

Ппц, аргументация. Как только на свет появился OpenGL, так сразу же появился и GLX. Да, 1992 год. И что?

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

„Так как“?

Их не учёл, признаюсь, так как сам с этим не работаю. Но это малый процент. Посчитай по головам на ЛОРе :-).

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