Interested Article - Wayland

Wayland протокол для организации графического сервера в Linux и других UNIX-подобных операционных системах . Разработка Wayland была начата Кристианом Хогсбергом ( дат. Kristian Høgsberg ), на тот момент сотрудником Red Hat , ныне членом Центра открытых технологий Intel . Wayland является свободным ПО . Название происходит от города , когда Хогсберг ехал через этот город, ему пришёл в голову концепт системы . Названия родственных проектов Weston и Maynard (см. ниже) произошли соответственно от соседних городов и Мейнард .

Основные принципы

The Wayland display server protocol relys on EGL

По мнению разработчиков, 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 .

Примечания

  1. — 2023.
  2. — 2008.
  3. (англ.) // (unknown type) — 2008.
  4. (англ.) // (unknown type) — 2010.
  5. Høgsberg, Kristian (англ.) . Linux Plumbers Conference, 2010. Дата обращения: 19 января 2014. 9 ноября 2013 года.
  6. . Дата обращения: 30 октября 2010. 22 ноября 2010 года.
  7. Michael Larabel (November 03, 2008) от 15 ноября 2010 на Wayback Machine
  8. Kristian Høgsberg (2010-11-22). . wayland-devel (Mailing list) (англ.) . из оригинала 8 апреля 2012 . Дата обращения: 23 ноября 2010 .
  9. Evan Jenkins. (англ.) . Ars Technica (март 2011). Дата обращения: 29 октября 2017. 14 февраля 2012 года.
  10. (англ.) . Дата обращения: 14 января 2024.
  11. от 26 апреля 2012 на Wayback Machine file from the Wayland source code repository (англ.)
  12. (16 апреля 2014). Дата обращения: 16 апреля 2014. 8 марта 2017 года.
  13. . Дата обращения: 20 января 2020. 7 декабря 2020 года.
  14. Марк Шаттлворт . (англ.) . Марк Шаттлворт (4 ноября 2010). Дата обращения: 4 ноября 2010. 24 августа 2011 года.
  15. Oliver Ries (Mar 4 2013). . ubuntu-devel (Mailing list) (англ.) . из оригинала 9 сентября 2014 . Дата обращения: 5 марта 2013 . {{ cite mailing list }} : Проверьте значение даты: |date= ( справка )
  16. . Дата обращения: 2 июня 2017. 30 апреля 2020 года.
  17. Corentin Chary. (англ.) (21 июня 2011). — «This driver really make things easy to test, since you don't need any specific hardware....» Дата обращения: 19 января 2014. 8 декабря 2013 года.
  18. (англ.) . Wayland.freedesktop.org. Дата обращения: 15 июля 2013. 5 апреля 2020 года.
  19. Høgsberg, Kristian (англ.) . Wayland mailing list (9 февраля 2011). Дата обращения: 8 июня 2013. 21 июня 2014 года.
  20. Høgsberg, Kristian (англ.) . Wayland mailing list (24 июля 2012). Дата обращения: 14 июля 2013. 17 марта 2013 года.
  21. Høgsberg, Kristian (англ.) . Wayland mailing list (22 октября 2012). Дата обращения: 14 июля 2013. 12 сентября 2013 года.
  22. Scherschel, Fabian (англ.) . The H - Open . (23 октября 2013). Дата обращения: 14 июля 2013. 7 декабря 2013 года.
  23. . Phoronix (16 апреля 2013). Дата обращения: 14 июля 2013. 3 февраля 2014 года.
  24. (англ.) . freedesktop.org. Дата обращения: 18 июля 2013. 23 июня 2013 года.
  25. (англ.) . Phoronix (6 января 2013). Дата обращения: 14 июля 2013. 3 февраля 2014 года.
  26. . Phoronix (13 июля 2013). Дата обращения: 14 июля 2013. 3 февраля 2014 года.
  27. (англ.) . Lists.freedesktop.org (28 июня 2013). Дата обращения: 18 июля 2013. 16 июля 2013 года.
  28. (англ.) (11 октября 2013). Дата обращения: 19 января 2014. 13 января 2014 года.
  29. Høgsberg, Kristian . Wayland mailing list (24 января 2014). Дата обращения: 25 мая 2014. 30 марта 2014 года.
  30. Høgsberg, Kristian . Wayland mailing list (20 мая 2014). Дата обращения: 25 мая 2014. 23 мая 2014 года.
  31. Høgsberg, Kristian . Wayland mailing list (19 февраля 2014). Дата обращения: 25 января 2015. 21 февраля 2015 года.
  32. Harrington, Bryce . wayland-devel mailing list (14 февраля 2015). Дата обращения: 24 января 2016. 7 марта 2016 года.
  33. Harrington, Bryce . wayland-devel mailing list (14 февраля 2015). Дата обращения: 24 января 2016. 29 июня 2015 года.
  34. Harrington, Bryce (англ.) . wayland-devel mailing list (2 июня 2015). Дата обращения: 24 января 2016. 10 марта 2016 года.
  35. Harrington, Bryce (англ.) . wayland-devel mailing list (2 июня 2015). Дата обращения: 24 января 2016. 10 марта 2016 года.
  36. . Дата обращения: 24 января 2016. 2 февраля 2016 года.
  37. Harrington, Bryce (21 September 2015). . wayland-devel (Mailing list). из оригинала 25 января 2016 . Дата обращения: 24 января 2016 .
  38. Harrington, Bryce (21 September 2015). . wayland-devel (Mailing list). из оригинала 30 января 2016 . Дата обращения: 24 января 2016 .
  39. . Дата обращения: 24 января 2016. 2 февраля 2016 года.
  40. Larabel, Michael . Phoronix.com (16 февраля 2016). Дата обращения: 17 апреля 2016. 21 июня 2017 года.
  41. . Дата обращения: 1 июня 2017. 12 июня 2017 года.
  42. Harrington, Bryce (1 June 2016). . wayland-devel (Mailing list). из оригинала 8 октября 2016 . Дата обращения: 1 июня 2016 .
  43. . Дата обращения: 1 июня 2017. 10 марта 2017 года.
  44. Harrington, Bryce (21 September 2016). . wayland-devel (Mailing list). из оригинала 2 апреля 2017 . Дата обращения: 21 сентября 2016 .
  45. Harrington, Bryce (21 February 2017). . wayland-devel (Mailing list). из оригинала 24 февраля 2017 . Дата обращения: 30 апреля 2017 .
  46. Harrington, Bryce (25 February 2017). . wayland-devel (Mailing list). из оригинала 2 марта 2017 . Дата обращения: 30 апреля 2017 .
  47. . Дата обращения: 1 июня 2017. 9 марта 2017 года.
  48. Bryce Harrington. (8 августа 2017). Дата обращения: 10 апреля 2018. 20 октября 2018 года.
  49. Bryce Harrington. (8 августа 2017). Дата обращения: 10 апреля 2018. 20 октября 2018 года.
  50. . www.opennet.ru. Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
  51. Derek Foreman. (9 апреля 2018). Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
  52. Derek Foreman. (9 апреля 2018). Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
  53. . www.opennet.ru. Дата обращения: 10 апреля 2018. 10 апреля 2018 года.
  54. (англ.) . GENIVI Alliance. Дата обращения: 15 июля 2013. Архивировано из 1 февраля 2014 года.
  55. . Posterous (2 апреля 2013). Дата обращения: 14 октября 2013. Архивировано из 17 мая 2013 года.
  56. . Murray's Blog (2 апреля 2013). Дата обращения: 14 октября 2013. 13 октября 2013 года.
  57. . Дата обращения: 14 сентября 2013. Архивировано из 11 июня 2013 года.
  58. Richard Hillesley. (англ.) . The H Open . (13 февраля 2012). Дата обращения: 19 января 2014. 6 декабря 2013 года.
  59. (англ.) . LinuxG.net (14 июля 2013). Дата обращения: 8 октября 2013. 28 июня 2014 года.
  60. (англ.) . Дата обращения: 19 января 2014. 25 октября 2013 года.
  61. (англ.) . Дата обращения: 19 января 2014. 11 апреля 2014 года.
  62. (англ.) . Tizen Wiki. Дата обращения: 8 апреля 2013. 10 февраля 2017 года.
  63. (англ.) . Tizen.org. Дата обращения: 15 июля 2013. 2 октября 2013 года.
  64. Sam Spilsbury. (англ.) (25 ноября 2010). — «...I was also hired by Canonical Ltd...» 8 апреля 2012 года.
  65. Sam Spilsbury. (англ.) (7 ноября 2010). 8 апреля 2012 года.
  66. deebeeoh. (англ.) . — «We are going to be helping compiz port to OpenGL ES». Дата обращения: 12 января 2010. 8 апреля 2012 года.
  67. (англ.) . Fedora Project. Дата обращения: 15 июля 2013. 1 февраля 2014 года.
  68. (англ.) . Lists.fedoraproject.org. Дата обращения: 15 июля 2013. 8 июля 2013 года.
  69. (англ.) . Phoronix (3 октября 2013). Дата обращения: 8 октября 2013. 10 октября 2013 года.
  70. (англ.) (3 октября 2013). Дата обращения: 8 октября 2013. 23 апреля 2014 года.
  71. Larabel, Michael (англ.) . Phoronix (13 марта 2013). Дата обращения: 8 апреля 2013. 28 июня 2013 года.
  72. (англ.) . Phoronix (25 сентября 2013). Дата обращения: 8 октября 2013. 1 октября 2013 года.
  73. (англ.) . GNOME (25 сентября 2013). Дата обращения: 8 октября 2013. 5 февраля 2021 года.
  74. 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 года.
  75. Grässlin, Martin (англ.) (19 января 2011). Дата обращения: 31 июля 2013. 6 декабря 2021 года.
  76. Grässlin, Martin (англ.) . Дата обращения: 8 апреля 2013. 9 октября 2012 года.
  77. Larabel, Michael . Phoronix (14 июня 2013). Дата обращения: 16 июня 2013. 3 февраля 2014 года.
  78. (англ.) . Collabora. Дата обращения: 9 августа 2013. 1 сентября 2013 года.
  79. (англ.) . Raspberry Pi. Дата обращения: 9 августа 2013. 9 февраля 2014 года.
  80. (англ.) . Дата обращения: 28 марта 2012. Архивировано из 24 ноября 2012 года.
  81. (англ.) . Дата обращения: 6 марта 2013. Архивировано из 29 марта 2013 года.
  82. (англ.) (23 сентября 2013). Дата обращения: 24 сентября 2013. 27 сентября 2013 года.
  83. (англ.) (3 сентября 2013). Архивировано из 22 июня 2013 года.
  84. Lantinga, Sam (англ.) (8 марта 2014). — «Added experimental Wayland and Mir support, disabled by default». Дата обращения: 15 марта 2014. 15 марта 2014 года.
  85. . Дата обращения: 28 марта 2012. 13 января 2014 года.

Ссылки

  • (англ.)
  • (англ.)
  • Евгений Золотов. (10 ноября 2010).
Источник —

Same as Wayland