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)

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

> Ну так о чём спор?

О том, что если мелкие динозавры вымерли, а гигантские крокодилы --- нет, то, не факт что дело в размерах.

Или тебе нужно быть правым любой ценой?

Все аналогии в технических науках кривые, я борюсь за этот тезис.

Можешь засунуть её себе глубоко в одно место.

Я вас тоже люблю.

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

>>Именно так и решили. Нет функции — нет проблемы. А репарентинг просто для того, чтобы сделать декорации (как в иксах), в wayland не нужен.

Значит и XEMBED тоже выкинули? Как теперь окна встраивать друг в друга?

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

Хм. А в чём проблема в _композитном_ менеджере вытащить изображение окна и встроить куда угодно? С редиректом ввода, конечно, нужно больше возиться.

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

> Как теперь окна встраивать друг в друга?

«Это не нужно.»

«Будем решать проблемы по мере поступления.»

«Есть DBus.»

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

>>С редиректом ввода, конечно, нужно больше возиться.

да, а также с размерами, всего лишь =)

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

При чём тут слой совместимости? wayland — не очередной X11-сервер, тонну софта в любом случае переписывать. Но не сейчас, поскольку wayland ещё недоделан.

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

>>тонну софта в любом случае переписывать

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

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

А как сие угодное действие сделать умолчальным?

Только для KDE:

$ echo "export QT_GRAPHICSSYSTEM=raster" > ~/.kde/env/qt-graphicssystem.sh
$ chmod +x ~/.kde/env/qt-graphicssystem.sh
former_anonymous ★★★
()
Ответ на: комментарий от Behem0th

>Нет не потянули бы, самим разработчикам надоело тянуть и он упростили и оптимизировали процесс.

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

OpenGL, OpenGL ES открытые трехмерные технологии и с ними все достаточно ярко.

На OpenGL можно и на каталистном блобе поездить прямо сейчас, но этого мало, нужен хотя бы 1 нормальный зд двигун под линукс а не: берите «кроссплатформенный» виндовый биндинг к хз чему и перетягивайте на линь пердячим паром как сможете.

Можно пилить дрова а использоваться они будут лишь для wine и vmware.

Смысл этого предложения не понял.

Линукс давно десктоп но некоторого софта не хватает.

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

очевидно, что светлое будущее у каждого наступит только тогда, когда лично ему больше не нужно будет ни одного X-приложения, а до этого - велкам пилить rootless Xserver и заброшенные разработчиками X-клиенты.

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

stable api все равно nonsense. Здесь то обвиняют винду в поддержке огромной массы легаси софта (еще со времен дос), а как в линуксе нужно что-то переделать, так «дурно пахнет».

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

DOS-софт не поддерживается в x64-версиях windows. Хотя можно запускать его в XP mode (это такая виртуалка) в старших редакциях венды.

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

> в линуксе нужно что-то переделать

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

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

И правда. Но я выкрутился с переменной окружения :-).

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

У меня складывается впечатление что ты в принципе не понимаешь значение галлиума. Это не внешний апи для приложений и не «двинун под линукс» никто не изобретал новый OpenGL. Это внутренняя «архитектура» драйверов, внутри месы, придуманная для сокращения колличества кода в каждом отдельном драйвере.

http://ru.wikipedia.org/wiki/Gallium3D

Прочти для ознакомления, там не много текста.

Галлиум не решает проблему прикладного софта под линукс это не его задача, он упрощает написание драйверов.

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

stable api все равно nonsense. Здесь то обвиняют винду в поддержке огромной массы легаси софта (еще со времен дос), а как в линуксе нужно что-то переделать, так «дурно пахнет».

Как бы офтопик, но я, кстати, считал и считаю, что МС была на правильном пути, когда старалась поддерживать обратную совместимость. И мои мысли в целом созвучны с Джоелем Спольски. И также сейчас считаю, что нет оснований изменять вещи. А вот развивать надо!

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

Все переделывают то что хотят. Это их свобода. И их свобода собирать дистры с чем они хотят. Не нравится не пользуйся, не нравится - напиши свое.

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

Спольски плохой пророк.

Ну а пока люди мало используют .NET.

Я вижу много компаний, которые переписывают свои системы с дельфей на .net, новые системы для винды создаются только на .net. Win7 стремительно набирает популярность за счет XP. Где-то пробегал график как 7 вытесняет XP. Так что в перспективе майкрософт ничего не потеряли начав переделывать все.

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

>Я вижу много компаний, которые переписывают свои системы с дельфей на .net, новые системы для винды создаются только на .net. Win7 стремительно набирает популярность за счет XP. Где-то пробегал график как 7 вытесняет XP. Так что в перспективе майкрософт ничего не потеряли начав переделывать все.

Это все результаты массовости, очень большого количества программерского мяса, огромных по своей величине трудовых ресурсов, которых в Open Source не было и нет. Аналог с Китаем, где дешевые и поистине огромные трудовые ресурсы привели его в состояние ведущей мировой фабрики, там человеческое время никого не интересует. Именно поэтому Микрософт еще может экспериментировать.

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

Так я и ответил на твой каммент про спольски. Он ошибся, давай это признаем.

stable api nonsense тоже не я придумал :)

По сути: это опенсорс, каждый делает что хочет. Убунтовцы запилят - попользуемся, посмотрим. На qt4 вон все перешли, хотя это потребовало полного переписывания некоторых программ, и где теперь qt3?

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

Потому что остальное переделывать намного сложнее. Лично я ненавижу иксы хотя бы за систему ввода текста (невозможно например использовать кнопку ctrl для переключения раскладки не теряя возможности использовать сочетания клавиш с ней).

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

>stable api nonsense тоже не я придумал :)

Ну вот именно по поводу этой фразы я и привел статью Спольского, но я сначала высказал свое мнение, а не только сослался на него. И мое мнение таково, что stable api — это не нонсенс. Unstable API я считаю одной из самых больших проблем в FOSS: чтобы обновить драйвер, надо обновлять ядро. Вот это нонсенс и есть. И здесь мы не сойдемся во мнениях.

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

Но надо сказать совместимость мс тоже поддерживает. Только-только выкинули поддержку дос-приложений в 64х разрядных системах, а приложения от старых виндов все еще работают как родные.

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

У фосс нету ресурсов поддерживать стабильность и инновации одновременно. Кроме того, поддерживать старый код - не сексуально, гораздо веселее писать новый. Это беда любой «базарной» разработки. Пока нужно было писать много нового кода, все были счастливы, линукс рос быстро. Сейчас надо не столько писать, сколько аккуратно переписывать, и прогресс заглох.

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

>то внутренняя «архитектура» драйверов, внутри месы, придуманная для сокращения колличества кода в каждом отдельном драйвере.

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

Прочти для ознакомления, там не много текста.

Сам прочти, мну это уже знает.

Галлиум не решает проблему прикладного софта под линукс это не его задача, он упрощает написание драйверов.

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

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

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

А я тебе о чём говорю? Раз не участвует в решении нужной проблемы

А драйверы не нужны?

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

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

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

> Опенсорсные драйверы на самом деле не так и нужны.

Твоя точка зрения давно понятна и ни разу не интересна.

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

Эх. Ну почему ты такой тупой? Не отвечай, я тебя зафрендил.

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

> Ой.

Какой ты все таки трудный и необразованный. OpenGL придумал SGI для 3d графики на юникс рабочих станциях. OpenGL родился в X11 :D

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

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

Джобс делал MacOS X не из FreeBSD, а из говна^WMac OS 9 и палок ^WMach.

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

Все переделывают то что хотят. Это их свобода. И их свобода собирать дистры с чем они хотят. Не нравится не пользуйся, не нравится - напиши свое.

Ты ж верещал про «надо». Тоньше тролль, тоньше и аккуратнее.

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

> Потому что остальное переделывать намного сложнее.

/facepalm

Лично я ненавижу иксы хотя бы за систему ввода текста (невозможно например использовать кнопку ctrl для переключения раскладки не теряя возможности использовать сочетания клавиш с ней).

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

И, да — ctrl _можно_ задействовать для переключения раскладки, не теряя возможности использовать хоткеи с ней. Домашнее задание: ознакомиться с механизмами обработки ввода в иксах и понять, каким образом этого достичь.

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

> stable api nonsense тоже не я придумал :)

Ты даже не в курсе, что stable api is nonsense относилось к внутреннему PI ядра, а не к его интерфейсу для приложений.

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

farafonoff> К тому же универсальная инфраструктура может замедлить инновации со стороны разработчиков железа: им проще добавить фичу в закрытый драйвер, чем проталкивать через сообщество в открытые драйвера, да еще убеждать всех обновить ядро для поддержки этих фич.

tailgunner> Эх. Ну почему ты такой тупой? Не отвечай, я тебя зафрендил.

А tailgunner-то прав.

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

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

Ты вообще идиот или просто отдыхаешь? Он участвует в решении этой проблемы но с другой стороны, со стороны написания драйверов и со своей обязанностью он справляется а писать «двинун под линукс» (что еще за термин такой?) пусть пишут те кому он нужен, например ты. Мне лично этот «двинун под линукс» не уперся так что для меня это сомнительная технология.

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

«OpenGL родился в X11» и «OpenGL всегда был в X11» — чуешь разницу?

Надо мысли формулировать точнее. Я выше про это уже написал.

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

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

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

Хорошо, что уточнил - «локально».

А по сети оно перерисовывается жутко медленно, в отличие от шустро работающего «native».

Да, X forwarding хорош тем, что приложения встраиваются в рабочее окружение на другой системе, в отличие от всяких VNC.

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

Если в Wayland будет всё то же, что и в иксах, но быстрее, проще и лучше, то пусть будет и даже пусть внедряется.

После тщательного тестирования.

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

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

Native — шустр по сети? Ты хорошо пошутил.

Шустрой по сети была бы чисто командная отрисовка. Без пиксмапов вообще. Вроде «используй такой-то стиль виджетов», «нарисуй кнопочку вон там». А native — убогий франкенштейн между тем, как надо в идеале (команды), и тем, как надо в случае, когда по-другому нельзя (растр, дельта, пожатый, или какие там алгоритмы).

Он тормозит по сравнению с тем, как надо, и локально и по сети.

Ещё раз повторяю: в иксах была качественная работа по сети как надо, но она в современных реалиях очень убога и её явно не хватает для приличной картинки. И не будет хватать в принципе. Работа по сети должна быть перенесена в тулкиты. Она, собственно, и так требовала поддержки в тулкитах (тот же native), если не хотелось гнать растр.

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

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

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

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

Собственно opengl разрабатывался с той задумкой что любой производитель может добавить свое расширение туда. Если основывать опенсорсные драйвера на месе (как сделано сейчас), расширение придется протолкнуть сначала в месу. Этот подход пока работает, потому что опенсорсные дрова догоняют проприетарные (по поддержке opengl). Когда меса догонит актуальный стандарт opengl, непонятно.

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