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)
Ответ на: комментарий от Quasar

>Обоснуй

Обосновать, что программа, выполняющая одну-единственную функцию, не подходит под определение «всё-в-одном»? феерично, чё -))

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

>То есть он прямо заставлял всех силой переходить с привычного.

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

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

> Emacs модулен (ну прямо как X).

Acme юниксвеен.

Как говорится, почувствуй разницу.



Вейланд в таком сравнении вообще edit.com с DOS-а окажется.

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

>Emacs модулен (ну прямо как X)

Вот-вот. Emacs - редкостное вендузятничество в мире Линукса. Хорошо хоть, он скоро единственный останется в этом списке, им хоть адекватные линуксоиды не пользуются, в отличие от иксов, работающей альтернативы которым просто нет сейчас.

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

Модули лишь достраивают один огромный комбайн.
Истинный путь юникс состоит в том, что ОТДЕЛЬНЫЕ программы взаимодействуют друг с другом и позволяют делать сложные вещи.
Знаешь ли ты, чем отличаются модульно-монолитное ядро (linux) и микроядро?

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

> начинаешь выдавать абсолютно противоречивые фразы в одном предложении

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

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

> комбайн

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

Знаешь ли ты, чем отличаются модульно-монолитное ядро (linux) и микроядро?

Если проводить параллель X Window — linux, то на месте микроядра окажется какой-нибудь qnxовый Фотон. А вейланд максимум тянет на роль внутреннего API где-то в глубинах клиента, предоставляющего абстракцию экрана на этом «микроядре».

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

ОФФТОП

>Нормальная сетевая прозрачность невозможна в Unix. Вообще. Поэтому и была создана ОС Plan 9.

Раз уж у тебя в каждом посте План9, запили, будь так добр, в ЛОРовскую вики пару статеек об использовании этой замечательной системы в качестве десктопа или, например, веб сервера. На основании своего собственного опыта, конечно.

А то система чудесная - а историй успеха и дельных советов по внедрению не хватает. Поделишься опытом (не копипастой с Белл Лабс) - глядишь, и потянутся за тобой и пользователи, и разработчики. И наступит всеобщее щясте.

gaestur
()
Ответ на: ОФФТОП от gaestur

> использовании этой замечательной системы в качестве десктопа
Гм.

или, например, веб-сервера

А вот это можно сделать. Но тогда нужны идеи, контент для сайта, у меня их нет.

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

ну просто начни читать код вяленда и вникайц что где и как происходит

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

>> использовании этой замечательной системы в качестве десктопа

Гм.


Столько написано про перспективность Rio, графической подсистемы, которая раньше всех умела поддерживать юникод (или тогда это было еще 8 1/2?) - и до сих пор на десктоп - не?

или, например, веб-сервера

А вот это можно сделать. Но тогда нужны идеи, контент для сайта, у меня их нет.


В порядке эксперимента: возьми исходники ЛОРа, и запусти на их базе сайт про Plan 9 на Plan 9. Покажешь здесь работающую систему - да maxcom свой айфон (на котором ЛОР, как известно, крутится) в тот же день на помойку выкинет.

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

> Столько написано про перспективность Rio, графической подсистемы, которая раньше всех умела поддерживать юникод (или тогда это было еще 8 1/2?) - и до сих пор на десктоп - не?
А все приложения для rio самому писать, да? Конечно, можно запустить оперу в linuxemu, можно запустить порт doom, но это же всё не то.
Да и ещё тайлинг писать надо (без тайловых WM десктоп становится для меня неюзабельным).

возьми исходники ЛОРа

Да ну вас, там же ява.

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

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

P.S. Возвращаясь к теме. Будь здесь обсуждение на тему «Каноникал, РедХэт и Интел подключаются к разработке Plan9. Марк Шаттлворт написал в своем блоге, что Линукс устарел» - я бы гораздо меньше волновался за будущую пригодность Линуксовых десктопов для работы, чем когда эти же люди пиарят wayland.

Plan9 - это хоть было бы оригинально и весело.

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

> Аналогично было с крупными динозаврами, которые оказались фэйлом природы и вымерли.

Вымерли, правда, и самые мелкие динозавры. Чтобы доказать, что аналогии сосут, наверное.

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

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

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

Нет ошибки нет, даже на глаз. Клиент и сервер X - это две разные программы. Локально они выполняются на медленном нетбуке. Удаленная машина на которой клиент - так скажем по-быстрее. В сумме удаленный клиент + сеть оказывются быстрее, чем локальный клиент. Т.е. X серверу и не надо быть очень быстрым, а вот современным тулкитам-клиентам с их монстрообразными библиотеками - подавай побольше гигагерц. Так что, не в том углу кошку ищем.

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

> И сжимать x264 на лету? Это каким процессором?

под вражими ОС для этого используют видеокарты

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

Цифра не точная, я просто не знаю точной, причём оно может меняться. Безотносительно этого, Qt тормозит.

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

X11 разрабатывался для UNIX графических рабочих станций (Silicon Graphics (+IRIX GL, а теперь OpenGL), Sun, HP) Терминал на сервер втыкался только один раз - при начальной системы постановке. Дальше - все по сети.

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

Так городить велосипеды это линукс-вей. Иксы остались в наследство от юниксов (наверное последние остались)

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

Сделай сайт по план9 на план9. С вики, видео, и парой статеек.

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

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

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

Тогда «сеть» была не совсем такая как сейчас. Были аппаратные X терминалы, которые специальным портом подключались к мейнфрейму.

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

У кого что было. Экспериментируем на том, что есть под рукой. А то что, в локальной сети машинки не будут тормозить - 20 лет как экспериментируем.

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

ты читать умеешь?

поиграй в игры ИЗ СОСТАВА гном2 на полном экране

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

> Единственной достойной заменой X11 из работающих решений могла бы быть NeWS

Да, NeWS была прекрасна и была гораздо лучше X11 и, тем более, wayland.. Но Sun убила его своей жлобской лицензионной политикой уже лет 20 как :-(

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

> Я хочу донести одну мысль, что если сетевая прозрачность, как она сделана в X, не нужна, то и Иксы не нужны. Менее принципиальное значение имеет то, что Xorg поддерживает кучу железа на разных ОС и архитектурах. Но это все-таки важный инфраструктурный аспект.

Тогда нужна графическая система для Linux без сетевой прозрачности убого не работающей в большинстве ситуаций. И плюс система удаленного графического доступа с прозрачной работой графики, звука и проброса накопителей.

NX немного делает в этом направлении, но спотыкается.

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

Я вот тоже к такой мысли склоняюсь, что нужно 2 системы. Как вариант с одной - вынос прозрачности в тулкит (но тогда клиент должен иметь этот тулкит в наличии, что, имхо, не критично). Типа в переменных окружения запускаемого процесса появляется что-то типа «USE_NETWORK_TRANSPARENCY=TRUE» и тогда тулкит отправляет сериализованную отрисовку в какой-нибудь поток. Вот только хз, откуда он его возьмет.

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

Или лучше не в тулкит, а в бэкэнд тулкита. Так должно быть меньше гемора для тулкитостроителей. А серисализовать вызов функций дело 5 минут. Только с битмапами будет проблемно. Как отличить изменившийся от не изменившегося? Не на каждый же MD5 считать и хранить ID в кэше....

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

когда X-клиенты будут сосуществовать с wayland-клиентами.

Очевидно это переходный вариант к светлому будущему.

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

ИМХО прозрачности место в плагине для Wayland.

Обычно применение: W Client => Wayland => video

Сетевое: W Client => Wayland => pluging --- network --- plugin => Wayland => video

Для клиентов бесшовно, а сам плагин может тянуть дополнительные потоки данных что позволит пробрасывать звук и принтеры + ФС от клиентов, чем закроет нишу NX machine & RPD & VNC.

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

>Ещё один слой абстракции? Да вы, батенька, эстет!

А что делать если либы на С/С++ не более чем планктон для ЯП их использующих. Предлагаешь переходить на питание планктоном и собирать все бонусы?

Napilnik ★★★★★
()

Я вот не понимаю здешней истерики... Уже аж на 26 страниц нафлудили.

Впрочем флуд был местами полезный, подсветил узкие места и в иксах и в вэйланде.

Я считаю, что вейланд определенно полезен. Если иксам пришел срок умереть - то будет заменой. В противном случае - конкуренция подстегнет программистов.

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

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

Сеть на уровне тулкитов - мастхэв! Это-же как реактивно будет все летать! Впрочем, никто не запрещает гонять пиксмапы, если нет нужного тулкита.

Ввод... Ну, еще программисты wine жаловались на иксовый ввод. 9 лет, если я правильно помню, не могли сделать мышку нормально.

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

>W Client => Wayland => pluging --- network --- plugin => Wayland => video

Это скорее VNC. NX, я так понял - просто заоптимизированный до безобразия X.

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

>Как отличить изменившийся от не изменившегося?

А сам тулкит, который рисует, не может сказать, что он битмап изменил?

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

> W Client => Wayland => pluging --- network --- plugin => Wayland => video

сам плагин может тянуть дополнительные потоки данных что позволит пробрасывать звук и принтеры + ФС


Wayland

дополнительные потоки данных



/0

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

> зато есть приложения которые тормозят локально

...и поэтому надо оптимизировать то, что не тормозит. :D

Железная логика.

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

> А сам тулкит, который рисует, не может сказать, что он битмап изменил?

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

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

Эм. А почему этим он должен заниматься? Тулкит ему говорит: «я перерисовал кнопку воооон в тоооом окошке.»

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

> А почему этим он должен заниматься?

Наверное потому, что претендует на роль оконной системы, не?

Тулкит ему говорит: «я перерисовал кнопку воооон в тоооом окошке.»

Еще раз, по буквам: в п р о т о к о л е н е т с р е д с т в д л я э т о г о. Так понятно?

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

А почему этим должен заниматься протокол wayland?

Что мешает использовать VNC? Сетевую прозрачность на уровне тулкитов(когда ее сделают)? Зачем вообще сеть и сетевая прозрачность в композиторе? Это-же по сути прокладка между тулкитом и дровами.

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