LINUX.ORG.RU

Релиз Wayland 1.0 и Weston 1.0

 ,


2

2

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

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

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

Описание политики версионирования:

  • Стабильность протокола и сгенерированного кода, объявленных в wayland.xml, а также клиентского API, определённого в wayland-client.h, будет обеспечиваться для всех версий ветки 1.хх. В ветке 1.хх протокол может быть расширен, но все приложения, собранные с libwayland-client.so версии 1.0.0, будут работать и с версиями в пределах 1.хх.
  • Серверная часть сгенерированного кода и серверный API останутся стабильными в пределах ветки 1.0.х. В главной ветке могут быть различные миграции кода между Wayland и Weston или другие ломающие API ситуации. В итоге может быть выпущен релиз 1.1.0, сохраняющий стабильность протокола и на стороне сервера, но чётких планов в этой сфере пока нет.
  • Weston будет сохранять стабильность API и ABI в пределах ветки 1.0.х. Работа над новыми функциями проолжится в главной ветке.

Изменения с версий 0.95.0 и 0.99.0:

  • Безусловно, самое значительное изменение - более безопасное API нитей. Удалены обратные вызовы из основного API и представлен новый механизм: wl_event_queue.
  • Механизм атомарного обновления поверхностей. Ранее точного определения момента обновления поверхностей просто не существовало, что могло привести к появлению артефактов. Теперь существует запрос wl_surface.commit, который должен использоваться для применения изменений к поверхностям.
  • Более точная проверка ошибок.
  • Удалены неименованные ARRAY_LENGTH и container_of из API.
  • Исправлено большое количество ошибок и существенно дополнена документация.

Напомним, что на данный момент вывод через Wayland поддерживается в Qt 5, GTK+ 3, Clutter и EFL. Также ведётся работа по внедрению поддержки Wayland в SDL.

Для желающих поэкпериментировать доступен git-репозиторий проекта Wayland, а так же Live-дистрибутив для тестирования.

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



Проверено: JB ()
Последнее исправление: JB (всего исправлений: 3)

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

Но уже гораздо меньше. Например, когда ты смотришь лично Первый телеканал и тебе оттуда говорят, что Навальный - это плохой человек, который получает деньги от госдепартамента США и хочет развала страны, ты, не задумываясь, веришь. А когда на вопрос «А кто такой Навальный?» тебе это пересказывает знакомый, ты спрашиваешь «Откуда такая серьёзная информация? Где источник?».

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

Под вяленд пока не видно ни работающих WM

Ну дык САБЖ (ака релиз 1.0) для того и создан, протокол стабилизировали теперь можно начинать пилить, раньше ССЗБ.

Этот протокол не позволяет создать WM. Вообще. В его протоколе это не возможно. WM под wayland-ом должен полностью реализовать весь протокол заново.

Wayland/weston — это монолит, иксы+WM в одном флаконе. Хочешь получить awesome под wayland — форкаешь исходники weston-а и меняешь в нем код управления окнами.

Только тайловые оконные менеджеры в вейланде нельзя сделать даже таким костылем. Его протокол не позволяет управлять окнами, окно нельзя свернуть/развернуть, нельзя сделать ни таскбар ни докпанель. Даже декорации окна отключить нельзя. Какой тут может быть тайловый менеджер?

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

HINT: Если окружающие тебя люди смотрят первый канал, то он воздействует на них, а через них - на тебя.

Но уже совсем не так, как задумано.

Или ты живёшь один в лесной глуши и пишешь с ближайшего пня?

Нет, но, кстати, никто из моих знакомых не смотрит первый канал.

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

Хм, то есть когда по телику говорят, ты вопросом про источник не задаёшься? Печальный случай.

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

Его протокол не позволяет управлять окнами, окно нельзя свернуть/развернуть,

Wayland/weston рисуют окна, как это они не могут ими управлять? Отключение декораций окон - через расширение протокола и патч к тулкитам, так же, как и с appmenu. Про таскбар и докпанель geekless уже говорил (ещё бы, он же автор lxpanelx), но механизм встраивания окон и popup'ов попросту ещё не придуман, этой части протокола нет в 1.0. И не паникуйте, посоны пораскинут мозгами и сделают, а с кондачка такие вопросы не решаются - вон, в иксах можно гулять курсором по всему экрану и эмулировать клик, и что-то я сомневаюсь что не-рутовскому приложению запрещено читать содержимое окна приложения, запущенного от root, и кликать на него. В оффтопике, допустим, это запрещено только для окон на разных рабочих станциях (workstations в терминах винапи).

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

HINT: Если окружающие тебя люди смотрят первый канал, то он воздействует на них, а через них - на тебя.

Но уже совсем не так, как задумано.

Или ты живёшь один в лесной глуши и пишешь с ближайшего пня?

Нет, но, кстати, никто из моих знакомых не смотрит первый канал.

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

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

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

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

Когда смотришь длинную телепередачу, задаёшься вопросом об адекватности информации. Если 80% адекватна, 20% лжи можно случайно пропустить.

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

Также и знакомые выдадут тебе 80% адекватной информации.

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

посоны пораскинут мозгами и сделают

...еще одни иксы. И встанет вопрос: «а ради чего всё это было?».

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

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

Тем, что в иксах такую прослойку сделать можно, а в вейланде — нет. Лучшее, что там можно сделать, это аналог VNC, который будет периодически скриншотить экран и отправлять его по сети.

Только, ой... в вейланде нельзя сделать скриншот. Нет такой возможности в стабильном протоколе версии 1.0. :)

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

Если очень хочется скорости, через вейленд можно гонять OpenGL примитивы.

Да? И как же?

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

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

Это вам не иксы, где выбирается наиболее эффективный способ. Даже Qt/GTK умеют использовать XRender там, где это выгодно, и генерировать битмапы только там, где передача примитивами была бы медленнее. Или, вы думаете, beryl/compiz могли бы работать, если бы работали с битмапами вместо примитивов?

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

Ололо, пуфы в студию.

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

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

И из чего же они состоят тогда?

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

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

Wayland/weston рисуют окна, как это они не могут ими управлять?

Ну вот так. Кроме как рисовать их он больше ничего не умеет. Все управление окном ложится на приложение.

Есть такая эпическая история — однажды вейландовцы задумались, что делать с подвисшими прогами? В иксах декорации окон не зависят от приложения, даже висячее окно можно переместить, свернуть, развернуть... А в вейланде каждая прога рисует свои декорации, и если она виснет, виснет и все окно, ни перетащить ни ресайзить его нельзя. Что делать? Вейландовцы прикрутили костыль — любое окно в вейланде перетаскивается по Win+LeftClick в любой части окна. И эти люди будут рассказывать нам про костыли в иксах?

Про таскбар и докпанель geekless уже говорил (ещё бы, он же автор lxpanelx), но механизм встраивания окон и popup'ов попросту ещё не придуман, этой части протокола нет в 1.0.

И не будет. Автор явно заявил, что делать EWMH он не хочет, а без них этого не сделать никак.

А если в wayland будет реализовано все то же самое, что сейчас есть в иксах, то нафиг нужен этот вейланд, если в иксах это все итак уже есть?

в иксах можно гулять курсором по всему экрану и эмулировать клик, и что-то я сомневаюсь что не-рутовскому приложению запрещено читать содержимое окна приложения, запущенного от root, и кликать на него

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

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

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

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

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

вон, в иксах можно гулять курсором по всему экрану и эмулировать клик, и что-то я сомневаюсь что не-рутовскому приложению запрещено читать содержимое окна приложения, запущенного от root, и кликать на него

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

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

для чего Вам лично требуется сетевая прозрачность?

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

Тем, что в иксах такую прослойку сделать можно, а в вейланде — нет.

4.2

Насколько я знаю и насколько я вижу по коду, в wayland отрисовка любого окна (не важно, opengl там или просто черный квадрат) идет через внешний буфер — приложение выделяет буфер в видеопамяти и напрямую рисует в этот буфер. После того, как рисование завершено, приложение передает указатель на этот буфер wayland-композитору, а само выделяет следующий буфер и начинает рисовать его. И так до бесконечности.

В каком месте wayland может сделать прослойку? Откуда он возьмет исходные примитивы? Про них знало только приложение и видеокарта. Он что, будет перехватывать вызовы видео-драйвера? Или будет анализировать нарисованную картинку и угадывать примитивы по ней? Как?

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

Автор явно заявил, что делать EWMH он не хочет, а без них этого не сделать никак.

Он собирался делать костыль, который будет «как EWMH, только для вяленда». Т.е. это проект, состоящий из костылей получается.

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

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

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

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

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

Какие эпичные глюки. Отсыпь, пожалуйста.

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

В каком месте wayland может сделать прослойку? Откуда он возьмет исходные примитивы? Про них знало только приложение и видеокарта. Он что, будет перехватывать вызовы видео-драйвера? Или будет анализировать нарисованную картинку и угадывать примитивы по ней? Как?

Я не сильно знаю его кишки, но вроде бы там так: та прослойка, которая передаёт контекст буфера между сервером и клиентом, никак протоколом не описана, т.е. лежит на совести реализации. Соответственно, теоретически возможна реализация, которая подсовывает приложению такой контекст, вызовы OGL на котором будут отправляться «куда-то еще», а не на локальную видеокарту.

Т.е. снова костыли + необходимость засовывать «особенные» библиотеки в адресное пространство клиента.

geekless ★★
()

Кстати, а есть ли пруфы бОльшей производительности Wayland, по сравнению с X11? Если есть - то обеими руками за W. Ибо плюшками «сетевой прозрачности» пользовался только в целях ознакомления с оной. Жертвовать ради нее ресурсами машины - зачем?

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

Из бесконечных битмапов

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

теней, градиентов, закруглений, прозрачностей

ВНЕЗАПНО, это всё и есть примитивы.

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

Нормальная графика может быть только от дизайнеров.

Как толсто. С таким же успехом можно утверждать, что нормальная ОС может быть только от официальных произ-лей, таких как Микрософт.

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

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

Еще раз, я хочу, скажем, отправить скрин рабочего стола на ЛОР, я нажимаю PrintScreen (или запускаю `import -window root desktop.jpg`), не важно где, в винде, маке, или линуксе, затем сохраняю картинку в файл и аттачу на лоре. Какой тут может быть контроль доступа?

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

Если не хотите, чтобы одно приложение взаимодействовало с другим, не запускайте их в одних иксах. К счастью, это не wayland, и switch user в иксах работает давно и очень успешно. А xhost может отлично отрезать от иксов других юзеров.

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

Именно это я хочу выяснить. Никаких тестов-сравнений не видно. Так-то мне, как пользователю (не гику), безразлично внутреннее устройство рисовалки окон. Главное, чтобы работало и не тормозило.

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

XSerjo
()

В чем профит? Чтобы юнити не тормозило?

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

ВНЕЗАПНО, это всё и есть примитивы.

Это даже не рядом с примитивами. То как оно сейчас отрисовывается не имеет ничего общего с тем, что поддерживают протоколы.

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

Еще раз, я хочу, скажем, отправить скрин рабочего стола на ЛОР

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

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

Еще раз, я хочу, скажем, отправить скрин рабочего стола на ЛОР, я нажимаю PrintScreen (или запускаю `import -window root desktop.jpg`), не важно где, в винде, маке, или линуксе, затем сохраняю картинку в файл и аттачу на лоре. Какой тут может быть контроль доступа?

Рассмотрим теоретическую ситуацию. Я, например, хочу, чтобы любые окна, требующие ввести пароль или работающие от рута:

1) могли подтвердить мне свою подлинность и принадлежность конкретным программам, запущенным от рута

2) не могли быть прослушаны недоверенными клиентами иксов.

Это решается при помощи мандатного контроля.

Совет же запустить вторые иксы эквивалентен совету использовать две ОС на одном компьютере для управления правами доступа. (В треде про BeOS/Haiku недавно такой бред написали.)

А теперь от теоретических выкладок перейдём к более практическим. Представим, что в браузере имеется критическая уязвимость, позволяющая злоумышленнику в сети получить управление над ним. Свои локальные данные от последствий такой атаки я защищу при помощи SELinux. А как мне защитить информацию в окнах иксов? Злоумышленник сможет читать мои чаты в реальном времени и видеть редактируемые файлы. Предложишь мне каждое приложение запустить на отдельном икс-сервере?

А xhost может отлично отрезать от иксов других юзеров.

Не может. man xhost. А то, о чем ты говоришь, называется xauth.

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

http://www.opennet.ru/opennews/art.shtml?num=34922

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

О мой бог. Ты сам-то понял, на что дал ссылку?

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

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

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Ответ на: комментарий от Axon

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

Ее существование только подтверждает правильность архитектуры Х и полноценность реализации сетевой прозрачности. Так как да, X специально сделаны таким образом что бы в них можно было стандартным образом встраивать различные прокси - рассчитанные на разные параметры каналов связи, в том числе. Что бы если внезапно придумают какие то более эффективные способы реализации сетевой прозрачности то не понадобилось бы ни редизайна протокола, ни переписывания X.

kernel ★★☆
()

с хабра

Многие говорят, что ограничения X11 не позволяют создавать красивые GUI, как в других операционных системах.

По сему вопрос, что это за красивые гуи, и в каких осях они?)

special-k ★★★
()
Ответ на: комментарий от Axon

Анонимус может и перегибает палку, но по сути сказал всё верно. Максимум, что можно прикрутить к вейланду — убогонький аналог VNC. Что твоя ссылка и демонстрирует. И о чем на ЛОРе талдычат уже год.

Вменяемым же людям для вменяемых задач требуется аналог NX или RDP. Или хотя бы возможность удаленно посылать команды OGL.

Между тем, кто-то писал:

> Тем, что в иксах такую прослойку сделать можно, а в вейланде — нет.

4.2

Поэтому мы с анонимусом всё еще ждём пруфов про 4.2.

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

с хабра

Многие говорят, что ограничения X11 не позволяют создавать красивые GUI, как в других операционных системах.

Воистину, сборище школоты и хипстеров.

По сему вопрос, что это за красивые гуи, и в каких осях они?)

Это всё влажные фантазии хипстеров. Забей.

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

Максимум, что можно прикрутить к вейланду — убогонький аналог VNC. Что твоя ссылка и демонстрирует.

По ссылке чистой воды proof of concept, сваляли за вечер, чтобы такие, как Евгений, наконец, угомонились. Там ничего не сказано про принципиальную возможность, только про конкретную реализацию, которая делалась по принципу «я его слепила из того, что было». Почему нельзя впоследствии использовать там те же оптимизации, что в NХ, или любые другие, даже более эффективные?

Axon ★★★★★
()
Последнее исправление: Axon (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.