Interested Article - Wayland
- 2020-10-06
- 1
Wayland — протокол для организации графического сервера в Linux и других UNIX-подобных операционных системах . Разработка Wayland была начата Кристианом Хогсбергом ( дат. Kristian Høgsberg ), на тот момент сотрудником Red Hat , ныне членом Центра открытых технологий Intel . Wayland является свободным ПО . Название происходит от города , когда Хогсберг ехал через этот город, ему пришёл в голову концепт системы . Названия родственных проектов Weston и Maynard (см. ниже) произошли соответственно от соседних городов и Мейнард .
Основные принципы
По мнению разработчиков, Wayland является «работой над ошибками» X.org , которые накопились за четыре десятилетия его развития. Кардинальное отличие от X.org заключается в том, что Wayland лишь управляет буферами (плоскостями) окон и возлагает всю отрисовку их содержимого на инструментальные пакеты ( GTK , Qt и так далее). API рисования (drawing API) полностью отсутствует. Все версии протокола строго определены, а сама система определения версий продумана. У X.org есть серьёзная проблема с версиями разных расширений, часто перекрещивавшимися или дополняющими, вместо того чтобы быть самодостаточными и исключающими. Функцию композиции буферов осуществляет референтный композитный менеджер (менеджер-композитор) Weston, использующий как OpenGL ES , так и программную отрисовку. В состав Wayland также входит унифицированный протокол устройств ввода, предоставляющий одну виртуальную клавиатуру, одну виртуальную мышь и один экранно-сенсорный интерфейс — разделяемые всеми приложениями. Wayland знает о состояниях устройств ввода и способен запоминать их. (X.org напротив не сохраняет состояния устройств (stateless-протокол), но может быть настроен через файлы конфигурации.)
О Wayland его создатель отзывается так:
Wayland — новый графический сервер, который выполняет только крошечную часть функций Х, которые мы действительно используем, когда запускаем композитный рабочий стол. Wayland, по сути, — буферный менеджер (подобно DRI2 для X.org ), обработчик входных данных. Весь рендеринг выполняется на клиентской стороне — так, как сегодня работает OpenGL , а задание режимов и другие аппаратные установки выполняются в ядре. Такой подход значительно упрощает организацию сервера.
Wayland использует уже существующие в ядре Linux технологии, такие как (KMS), Direct Rendering Manager (DRM) и (GEM).
Weston
Weston — это эталонная реализация композитного менеджера Wayland. Написан на языке Си , сначала был опубликован под лицензией GPLv2 , позже вышел под MIT . Weston изначально создавался под API ядра Linux, поэтому официально поддерживает работу только с ядром Linux из-за зависимости от KMS, GEM и udev .
Weston использует GEM для обмена буферов между графическим сервером и приложениями. Для рендеринга может использовать OpenGL , cairo и pixman .
Maynard
Maynard — графическая оболочка, которая была создана как плагин к Weston, аналогично тому, как GNOME Shell был создан как плагин к Mutter . Изначально Maynard проектировался для Raspberry Pi как легковесная графическая оболочка, поскольку в то время (2014 год) легковесные окружения рабочего стола, такие как LXDE , не поддерживали Wayland, а функциональные окружения типа GNOME и KDE были слишком ресурсоёмкими. Проект не ограничен платформой Raspberry Pi и может использоваться на обычных рабочих станциях. Оболочка отличается низким потреблением ресурсов, высокой производительностью, качественным оформлением и легковесностью.
Использование
Марк Шаттлворт анонсировал в своём блоге, что Ubuntu будет использовать Wayland вместо X.org для своей среды рабочего стола Unity . Однако 4 марта 2013 года разработчики из Canonical приняли решение написать собственный графический сервер, получивший название Mir . 5 апреля 2017 года они отказались от Mir и Unity в пользу Wayland и GNOME .
В операционной системе Fedora начиная с версии 35, по умолчанию используется окружение рабочего стола GNOME на базе Wayland.
Совместимость с X.org
Был разработан xwayland , который позволяет работать X11-приложениям поверх Wayland. Аналогично X.org приложения запускаются и под нативным окружением Mac OS X .
Релизы
Основные релизы Wayland/Weston | |||
---|---|---|---|
Версия | Дата | Ключевые изменения в Wayland | Ключевые изменения в Weston |
0.85 | 9 фев 2012 | Первый релиз. | |
0.95 | 24 июл 2012 | Начало стабилизации API. | |
1.0 | 22 окт 2012 | Стабилизация клиентского API. | |
1.1 | 15 апр 2013 | Программный рендеринг . | |
1.2 | 12 июл 2013 | Стабилизация серверного API. | Средства управления цветом. Протокол для манипулирования субповерхностями и группами поверхностей. Бэкэнд для Raspberry Pi. |
1.3 | 11 окт 2013 | Новые пиксельные форматы для wl_shm. Поддержка биндингов к высокоуровневым языкам. | Поддержка Android с Hybris. |
1.4 | 23 янв 2014 | Новые интерфейсы wl_subcompositor и wl_subsurface. | Поддержка форматов фреймбуфера, отличных от XRGB8888. Теперь права суперпользователя необязательны благодаря задействованию logind из состава systemd. |
1.5 | 20 май 2014 | libinput. Полноэкранный shell. | |
1.6 | 19 сен 2014 | libinput по умолчанию. | |
1.7 | 14 фев 2015 | Интерфейс xdg-shell. | |
1.8 | 2 июня 2015 | Разделены заголовочные файлы клиента и сервера на базовые компоненты и генерируемые протоколы. |
Поддержка перерисовки по расписанию.
API для захвата содержимого поверхностей Началось тестирование оболочки для информационно-развлекательных систем (IVI), добавлена экранная раскладка для IVI. |
1.9 | 21 сентября 2015 | Обновлена лицензия. |
Обновлена лицензия. Предварительная реализация библиотеки libweston, в которую вынесен код внутренней функциональности Weston.
Добавлено новое расширение linux_dmabuf, предоставляющее средство для прямого вывода (zero-copy) видео на экран. |
1.10 | 17 февраля 2016 | Поддержка Drag-and-Drop, событий от группируемых указателей | Поддержка Video 4 Linux 2. Ввод от сенсорных экранов. Улучшение отладочных средств |
1.11 | 1 июня 2016 | Новая сервисная процедура загрузки, новая логика установки | Proxy wrappers, изменение интерфейсов разделяемой памяти, Doxygen-генерированная HTML документация |
1.12 | 21 сентября 2016 | Улучшения поддержки отладки | Разделение на libweston и libwestond-desktop. Захват и ограничение указателя. Поддержка относительных указателей. |
1.13 | 24 февраля 2017 | Изменение ABI Weston. Новая версия имеет порядковый номер 2.0, а не 1.13 | |
1.14 | 8 августа 2017 | Смена номера версии Weston на 3.0 обусловлена изменениями ABI, нарушающими совместимость | |
1.15 | 10 апреля 2018 | Смена номера версии Weston на 4.0 обусловлена изменениями ABI, нарушающими совместимость | |
1.16 | 24 августа 2018 | Weston 5.0.0 | |
1.17 | 20 марта 2019 | Weston 6.0.0 | |
1.18 | 2 августа 2019 | Weston 7.0.0 вышел на месяц позже | |
1.19 | 27 января 2021 | ||
Weston 8 | 24 января 2020 | ||
Weston 9 | 4 сентября 2020 | ||
Weston 10 | 2 февраля 2022 |
Условные обозначения:
Будущая версия Текущая версия Поддерживается Не поддерживается
Разработка
- Автомобильный консорциум GENIVI, чья цель создать платформу для IVI индустрии, поддерживает Wayland .
- Maliit, фреймворк системы ввода, работает под Wayland .
- Mesa
- Mesa имеет встроенную поддержку Wayland .
- Sailfish OS
- Первый телефон Jolla использует Wayland .
- Tizen
- Tizen поддерживал Wayland в IVI setups до 2.x версий включительно , а начиная с версии 3.0 по умолчанию использует Wayland .
Планируемая поддержка
- Ubuntu
- Canonical , владелец Ubuntu, наняла Сэма Спилсбери , главного разработчика Compiz . Он будет перемещать зависимости от X11 в отдельный плагин . Canonical планирует портировать Compiz на OpenGL ES, что требуется для работы с Wayland .
- Fedora
- Fedora поставляет Wayland начиная с семнадцатой версии . Разработчик Fedora Маттиас Класен опубликовал в марте 2013 план, согласно которому Wayland должен стать оконной системой по умолчанию в Fedora 21 . Fedora 20 предоставляет предварительную реализацию GNOME 3.10 на Wayland .
- GNOME
- В марте 2013 разработчики GNOME анонсировали свои планы о полной поддержке Wayland через год . GNOME 3.10 имеет начальную поддержку .
- KDE
- KWin , оконный менеджер KDE, получил поддержку OpenGL ES в версии 4.7 . В январе 2013 главный разработчик KWin Мартин Грэсслин начал работать на , где одна из главных его целей добиться полной поддержки Wayland . Экспериментальная поддержка Wayland уже есть в KWin 4.11 .
- Raspberry Pi
- Raspberry Pi Foundation работает совместно с над улучшением производительности и потребления оперативной памяти, однако не намереваются сменить X11 на Wayland до конца 2013 .
Тулкиты
- Clutter полностью поддерживает Wayland .
- Enlightenment Foundation Libraries полностью поддерживает Wayland .
- GTK+ 3.10 (вышел 23 сентября 2013 года) полностью поддерживает Wayland 1.2, включая декорирование на стороне клиента, требуемое для Weston .
- Qt 5 полностью поддерживает Wayland, включая декорирование на стороне клиента, что требуется для Weston (а не KWin).
- Экспериментальная поддержка Wayland добавлена в SDL в версии 2.0.2 .
Примечания
- — 2023.
- — 2008.
- (англ.) // (unknown type) — 2008.
- (англ.) // (unknown type) — 2010.
- Høgsberg, Kristian (англ.) . Linux Plumbers Conference, 2010. Дата обращения: 19 января 2014. 9 ноября 2013 года.
- . Дата обращения: 30 октября 2010. 22 ноября 2010 года.
- Michael Larabel (November 03, 2008) от 15 ноября 2010 на Wayback Machine
- Kristian Høgsberg (2010-11-22). . wayland-devel (Mailing list) (англ.) . из оригинала 8 апреля 2012 . Дата обращения: 23 ноября 2010 .
- Evan Jenkins. (англ.) . Ars Technica (март 2011). Дата обращения: 29 октября 2017. 14 февраля 2012 года.
- (англ.) . Дата обращения: 14 января 2024. 13 января 2024 года.
- от 26 апреля 2012 на Wayback Machine file from the Wayland source code repository (англ.)
- (16 апреля 2014). Дата обращения: 16 апреля 2014. 8 марта 2017 года.
- . Дата обращения: 20 января 2020. 7 декабря 2020 года.
- Марк Шаттлворт . (англ.) . Марк Шаттлворт (4 ноября 2010). Дата обращения: 4 ноября 2010. 24 августа 2011 года.
-
Oliver Ries (Mar 4 2013).
.
ubuntu-devel
(Mailing list)
(англ.)
.
из оригинала
9 сентября 2014
. Дата обращения:
5 марта 2013
.
{{ cite mailing list }}
: Проверьте значение даты:|date=
( справка ) - . Дата обращения: 2 июня 2017. 30 апреля 2020 года.
- Corentin Chary. (англ.) (21 июня 2011). — «This driver really make things easy to test, since you don't need any specific hardware....» Дата обращения: 19 января 2014. 8 декабря 2013 года.
- (англ.) . Wayland.freedesktop.org. Дата обращения: 15 июля 2013. 5 апреля 2020 года.
- Høgsberg, Kristian (англ.) . Wayland mailing list (9 февраля 2011). Дата обращения: 8 июня 2013. 21 июня 2014 года.
- Høgsberg, Kristian (англ.) . Wayland mailing list (24 июля 2012). Дата обращения: 14 июля 2013. 17 марта 2013 года.
- Høgsberg, Kristian (англ.) . Wayland mailing list (22 октября 2012). Дата обращения: 14 июля 2013. 12 сентября 2013 года.
- Scherschel, Fabian (англ.) . The H - Open . (23 октября 2013). Дата обращения: 14 июля 2013. 7 декабря 2013 года.
- . Phoronix (16 апреля 2013). Дата обращения: 14 июля 2013. 3 февраля 2014 года.
- (англ.) . freedesktop.org. Дата обращения: 18 июля 2013. 23 июня 2013 года.
- (англ.) . Phoronix (6 января 2013). Дата обращения: 14 июля 2013. 3 февраля 2014 года.
- . Phoronix (13 июля 2013). Дата обращения: 14 июля 2013. 3 февраля 2014 года.
- (англ.) . Lists.freedesktop.org (28 июня 2013). Дата обращения: 18 июля 2013. 16 июля 2013 года.
- (англ.) (11 октября 2013). Дата обращения: 19 января 2014. 13 января 2014 года.
- Høgsberg, Kristian . Wayland mailing list (24 января 2014). Дата обращения: 25 мая 2014. 30 марта 2014 года.
- Høgsberg, Kristian . Wayland mailing list (20 мая 2014). Дата обращения: 25 мая 2014. 23 мая 2014 года.
- Høgsberg, Kristian . Wayland mailing list (19 февраля 2014). Дата обращения: 25 января 2015. 21 февраля 2015 года.
- Harrington, Bryce . wayland-devel mailing list (14 февраля 2015). Дата обращения: 24 января 2016. 7 марта 2016 года.
- Harrington, Bryce . wayland-devel mailing list (14 февраля 2015). Дата обращения: 24 января 2016. 29 июня 2015 года.
- Harrington, Bryce (англ.) . wayland-devel mailing list (2 июня 2015). Дата обращения: 24 января 2016. 10 марта 2016 года.
- Harrington, Bryce (англ.) . wayland-devel mailing list (2 июня 2015). Дата обращения: 24 января 2016. 10 марта 2016 года.
- . Дата обращения: 24 января 2016. 2 февраля 2016 года.
- Harrington, Bryce (21 September 2015). . wayland-devel (Mailing list). из оригинала 25 января 2016 . Дата обращения: 24 января 2016 .
- Harrington, Bryce (21 September 2015). . wayland-devel (Mailing list). из оригинала 30 января 2016 . Дата обращения: 24 января 2016 .
- . Дата обращения: 24 января 2016. 2 февраля 2016 года.
- Larabel, Michael . Phoronix.com (16 февраля 2016). Дата обращения: 17 апреля 2016. 21 июня 2017 года.
- . Дата обращения: 1 июня 2017. 12 июня 2017 года.
- Harrington, Bryce (1 June 2016). . wayland-devel (Mailing list). из оригинала 8 октября 2016 . Дата обращения: 1 июня 2016 .
- . Дата обращения: 1 июня 2017. 10 марта 2017 года.
- Harrington, Bryce (21 September 2016). . wayland-devel (Mailing list). из оригинала 2 апреля 2017 . Дата обращения: 21 сентября 2016 .
- Harrington, Bryce (21 February 2017). . wayland-devel (Mailing list). из оригинала 24 февраля 2017 . Дата обращения: 30 апреля 2017 .
- Harrington, Bryce (25 February 2017). . wayland-devel (Mailing list). из оригинала 2 марта 2017 . Дата обращения: 30 апреля 2017 .
- . Дата обращения: 1 июня 2017. 9 марта 2017 года.
- Bryce Harrington. (8 августа 2017). Дата обращения: 10 апреля 2018. 20 октября 2018 года.
- Bryce Harrington. (8 августа 2017). Дата обращения: 10 апреля 2018. 20 октября 2018 года.
- . www.opennet.ru. Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
- Derek Foreman. (9 апреля 2018). Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
- Derek Foreman. (9 апреля 2018). Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
- . www.opennet.ru. Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
- (англ.) . GENIVI Alliance. Дата обращения: 15 июля 2013. Архивировано из 1 февраля 2014 года.
- . Posterous (2 апреля 2013). Дата обращения: 14 октября 2013. Архивировано из 17 мая 2013 года.
- . Murray's Blog (2 апреля 2013). Дата обращения: 14 октября 2013. 13 октября 2013 года.
- . Дата обращения: 14 сентября 2013. Архивировано из 11 июня 2013 года.
- Richard Hillesley. (англ.) . The H Open . (13 февраля 2012). Дата обращения: 19 января 2014. 6 декабря 2013 года.
- (англ.) . LinuxG.net (14 июля 2013). Дата обращения: 8 октября 2013. 28 июня 2014 года.
- (англ.) . Дата обращения: 19 января 2014. 25 октября 2013 года.
- (англ.) . Дата обращения: 19 января 2014. 11 апреля 2014 года.
- (англ.) . Tizen Wiki. Дата обращения: 8 апреля 2013. 10 февраля 2017 года.
- (англ.) . Tizen.org. Дата обращения: 15 июля 2013. 2 октября 2013 года.
- Sam Spilsbury. (англ.) (25 ноября 2010). — «...I was also hired by Canonical Ltd...» 8 апреля 2012 года.
- Sam Spilsbury. (англ.) (7 ноября 2010). 8 апреля 2012 года.
- deebeeoh. (англ.) . — «We are going to be helping compiz port to OpenGL ES». Дата обращения: 12 января 2010. 8 апреля 2012 года.
- (англ.) . Fedora Project. Дата обращения: 15 июля 2013. 1 февраля 2014 года.
- (англ.) . Lists.fedoraproject.org. Дата обращения: 15 июля 2013. 8 июля 2013 года.
- (англ.) . Phoronix (3 октября 2013). Дата обращения: 8 октября 2013. 10 октября 2013 года.
- (англ.) (3 октября 2013). Дата обращения: 8 октября 2013. 23 апреля 2014 года.
- Larabel, Michael (англ.) . Phoronix (13 марта 2013). Дата обращения: 8 апреля 2013. 28 июня 2013 года.
- (англ.) . Phoronix (25 сентября 2013). Дата обращения: 8 октября 2013. 1 октября 2013 года.
- (англ.) . GNOME (25 сентября 2013). Дата обращения: 8 октября 2013. 5 февраля 2021 года.
- Grässlin, Martin (англ.) (28 ноября 2010). — «It does not only help, it is a must have to start working for Wayland. So to say it’s the first part of the KWin port to Wayland». Дата обращения: 22 мая 2011. 9 ноября 2020 года.
- Grässlin, Martin (англ.) (19 января 2011). Дата обращения: 31 июля 2013. 6 декабря 2021 года.
- Grässlin, Martin (англ.) . Дата обращения: 8 апреля 2013. 9 октября 2012 года.
- Larabel, Michael . Phoronix (14 июня 2013). Дата обращения: 16 июня 2013. 3 февраля 2014 года.
- (англ.) . Collabora. Дата обращения: 9 августа 2013. 1 сентября 2013 года.
- (англ.) . Raspberry Pi. Дата обращения: 9 августа 2013. 9 февраля 2014 года.
- (англ.) . Дата обращения: 28 марта 2012. Архивировано из 24 ноября 2012 года.
- (англ.) . Дата обращения: 6 марта 2013. Архивировано из 29 марта 2013 года.
- (англ.) (23 сентября 2013). Дата обращения: 24 сентября 2013. 27 сентября 2013 года.
- (англ.) (3 сентября 2013). Архивировано из 22 июня 2013 года.
- Lantinga, Sam (англ.) (8 марта 2014). — «Added experimental Wayland and Mir support, disabled by default». Дата обращения: 15 марта 2014. 15 марта 2014 года.
- . Дата обращения: 28 марта 2012. 13 января 2014 года.
Ссылки
- (англ.)
- (англ.)
- Евгений Золотов. (10 ноября 2010).
Для улучшения этой статьи
желательно
:
|
- 2020-10-06
- 1