Wayland

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

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

 Wayland у Вікісховищі

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

  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. Офіційний сайт
  5. Michael Larabel (November 03, 2008) Wayland: A New X Server For Linux
  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 как минимум через полтора года
  10. Oliver Ries (Mar 4 2013). Taking Unity to the next level. ubuntu-devel mailing list.
  11. ArtfulAardvark/ReleaseNotes - Ubuntu Wiki. wiki.ubuntu.com. Процитовано 19 жовтня 2017.

Посилання

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.