Wayland

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Wayland
Типграфічний сервер
АвторKristian Høgsberg
РозробникиKristian Høgsbergd[1][2] і Freedesktop.org[3]
Перший випуск0.85 / 9 лютого, 2011; 13 років тому (2011-02-09)
Стабільний випуск1.22 (4 квітня, 2023; 19 місяців тому (2023-04-04))
Операційна системаUnix-подібні
Мова програмуванняC
Стан розробкиактивний
ЛіцензіяMIT
Онлайн-документаціяwayland.freedesktop.org/docs/html/
Репозиторійgitlab.freedesktop.org/wayland/wayland
Вебсайтwayland.freedesktop.org

Waylandграфічний сервер для Linux та інших UNIX-подібних операційних систем, що складається з протоколу, механізму міжпроцесної взаємодії та бібліотек. Розробка Wayland була розпочата Крістіаном Гоґсберґом (Kristian Høgsberg), членом «Центру відкритих технологій Intel» (Intel's Open Source Technology Center) і співробітником Red Hat. Wayland є вільним ПЗ[4][5][6].

Основні принципи

[ред. | ред. код]
  1. Модуль evdev ядра Linux отримує подію і надсилає її до композитора.
  2. Композитор здійснює пошук серед графів сцени, щоб з'ясувати, яке вікно отримає подію. Граф сцени відповідає тому, що знаходиться на екрані, також композитор приймає до уваги можливі трансформації елементів графа. Таким чином, композитор обирає правильне вікно і обчислює локальні кординати вікна з координат екрану шляхом зворотної трансформації.
  3. Як і у схемі з X11, коли клієнтська програма отримує подію, вона оновлює свої елементи екранного інтерфейсу. У випадку Wayland різниця полягає у тому, що рендеринг здійснюється клієнтом через EGL, і клієнт просто надсилає повідомлення про оновлений регіон композиторові.
  4. Композитор об'єднує англ. damage requests від всіх клієнтів і перекомпоновує екран. Після цього композитор може здійснити прямий виклик ioctl до KMS, який здійснює перемикання екранної сторінки (англ. page flip).

Wayland використовує вже наявні в ядрі Linux технології, такі як Kernel mode-setting (KMS), Direct Rendering Manager (DRM) і Graphics Execution Manager (GEM). Також до складу Wayland входить власний вбудований композитний менеджер (згодом виокремлений в окремий проєкт Weston), який використовує OpenGL ES. Сервер Wayland його творець характеризує так: «Wayland — новий сервер дисплея, який виконує тільки крихітну частину тих функцій X Window System, які ми фактично використовуємо, коли запускаємо композитний робочий стіл. Wayland — це, по суті, буферний менеджер (подібно до того, чим DRI2 є для X.org), обробник вхідних даних. Весь рендеринг виконується на стороні клієнта — так, як сьогодні працює OpenGL, а завдання режимів та інші апаратні установки виконуються в ядрі. Такий підхід дозволяє значно спростити організацію сервера».

Wayland відрізняється від класичного X-сервера тим, що на рівні сервера виконується тільки переадресація всіх вікон, а всі операції рендеринга і керування вікнами виконуються на стороні клієнта і передаються для обробки сервера зі вбудованим композитним менеджером. Сервер не підтримує API відтворення і оперує тільки з вже сформованими вікнами, що дозволяє позбутися подвійної буферизації, при використанні таких бібліотек як GTK+, Qt і Clutter. Всі операції відтворення провадяться силами додаткових бібліотек, наприклад, OpenGL ES, FreeType і Cairo. Wayland надає протокол взаємодії композитного сервера і працюючих з ним застосунків. Клієнти самостійно виконують малювання своїх вікон в окремому буфері, передаючи інформацію про оновлення композитному серверу, який комбінує вміст буферів окремих застосунків для формування підсумкового виводу з урахуванням можливих нюансів, таких як перекриття вікон і прозорість. Взаємодія з апаратним забезпеченням, наприклад, проведення ініціалізації, перемикання відеорежимів (drm modesetting) і керування пам'яттю (GEM) графічних карт, проводиться через KMS-модуль, що працює на рівні ядра, що дозволяє обійтися без привілеїв суперкористувача.

У рамках супутнього проєкт Weston розвивається один з прототипів реалізації композитного сервера. Підкреслюється, що це лише одна з реалізацій (за аналогією з віконними менеджерами), оскільки в ролі композитного сервера може виступати будь-який інший продукт, що підтримує протокол Wayland. Наприклад, ведеться робота із забезпеченню підтримки Wayland в таких наявних композитних менеджерах для X11, як KWin і Compiz. Композитний сервер Weston може працювати з використанням DRM-модуля ядра Linux, поверх X11 або поверх іншого композитного сервера Wayland.

Використання

[ред. | ред. код]

Підтримка прямої роботи з Wayland вже реалізована для бібліотек Gtk3+, Qt 5, SDL, Clutter і EFL (Enlightenment Foundation Library).

  • Wayland мав використовуватися в створюваній Intel і Nokia операційній системі MeeGo[7]
  • Марк Шаттлворт анонсував у своєму блозі, що Ubuntu, можливо, буде використовувати Wayland замість X.org для стільничного середовища Unity[8] Попередні пакети з Wayland вже включені до складу репозиторію universe та можуть бути випробувані користувачами Ubuntu 11.04. Іншим важливим кроком вперед є забезпечення підтримки запуску Compiz поверх Wayland. Проте за найоптимістичнішими оцінками в базову версію Ubuntu Wayland може бути інтегрувати не раніше випуску 12.10, запланованого на жовтень 2012 року.[9] Проте в березні 2013 року розробники з Canonical ухвалили рішення про створення свого власного графічного сервера, що має назву Mir[10]
  • Графічна система дистрибутиву Fedora була переведена на Wayland
  • Графічна система дистрибутиву Ubuntu переведена на Wayland, починаючи з версії 17.10 «Artful Aardvark»[11]

Виноски

[ред. | ред. код]
  1. Høgsberg K. Premature publicity is better than no publicity — 2008.
  2. Larabel M. Wayland: A New X Server For Linux // Phoronix — 2008.
  3. а б Larabel M. Wayland Becomes A FreeDesktop.org Project // Phoronix — 2010.
  4. Офіційний сайт. Архів оригіналу за 22 листопада 2010. Процитовано 24 листопада 2010.
  5. Michael Larabel (November 03, 2008) Wayland: A New X Server For Linux [Архівовано 15 листопада 2010 у Wayback Machine.]
  6. Kristian Høgsberg (22 листопада 2010). Wayland license clarification. wayland-devel mailing list. Архів оригіналу за 8 квітня 2012. Процитовано 23 листопада 2010.
  7. Michael Larabel (16 вересня 2010). Where Wayland May First Appear In Use By A Distro. Архів оригіналу за 9 липня 2013. Процитовано 24 листопада 2010.
  8. Марк Шаттлворт (4 листопада 2010). Unity on Wayland. Архів оригіналу за 24 серпня 2011. Процитовано 4 листопада 2010.
  9. Ubuntu начнет использовать дисплейный сервер Wayland как минимум через полтора года. Архів оригіналу за 5 червня 2011. Процитовано 11 травня 2011.
  10. Oliver Ries (Mar 4 2013). Taking Unity to the next level. ubuntu-devel (Список розсилки) (англ.). Архів оригіналу за 9 вересня 2014. Процитовано 10 жовтня 2014.
  11. ArtfulAardvark/ReleaseNotes - Ubuntu Wiki. wiki.ubuntu.com. Архів оригіналу за 24 листопада 2017. Процитовано 19 жовтня 2017.

Посилання

[ред. | ред. код]