Система отображения, предназначенная для замены X11
Wayland — это протокол связи , который определяет связь между сервером отображения и его клиентами, а также реализация этого протокола в библиотеке C. [9] Сервер отображения, использующий протокол Wayland, называется компоновщиком Wayland , поскольку он дополнительно выполняет задачу менеджера окон компоновки .
В рамках своих усилий проект Wayland также разрабатывает эталонную реализацию композитора Wayland под названием Weston . [9]
Обзор
Проект Wayland Display Server был начат разработчиком Red Hat Кристианом Хегсбергом в 2008 году. [15]
Начиная примерно с 2010 года, графика Linux для настольных ПК перешла от «кучи интерфейсов рендеринга ... все они общаются с X-сервером , который находится в центре вселенной» к размещению ядра Linux и его компонентов (т. е. инфраструктуры прямой рендеринга (DRI), диспетчера прямой рендеринга (DRM)) «посередине», с «оконными системами, такими как X и Wayland... в углу». Это будет «значительно упрощенная графическая система, предлагающая большую гибкость и лучшую производительность». [16]
Хегсберг мог бы добавить расширение к X, как это было сделано во многих недавних проектах, но предпочел «[вытолкнуть] X из горячего канала между клиентами и оборудованием» по причинам, изложенным в FAQ проекта: [14]
Отличие сейчас в том, что большая часть инфраструктуры переместилась из X-сервера в ядро (управление памятью, планирование команд, настройка режима ) или библиотеки ( cairo , pixman, freetype , fontconfig , pango и т. д.), и осталось совсем немного того, что должно происходить в центральном серверном процессе. ... [X-сервер имеет] огромное количество функций, которые вы должны поддерживать, чтобы заявлять, что говорите по протоколу X, но никто никогда не будет этим пользоваться. ... Сюда входят кодовые таблицы, растеризация и кэширование глифов, XLFD (серьезно, XLFD!) и весь API рендеринга ядра, который позволяет вам рисовать пунктирные линии, многоугольники, широкие дуги и многие другие графические примитивы в стиле 1980-х годов. Во многих случаях мы смогли сохранить современный сервер X.org, добавив такие расширения, как XRandR , XRender и COMPOSITE ... С Wayland мы можем переместить X-сервер и все его устаревшие технологии в дополнительный путь кода. Достижение точки, когда X-сервер станет опцией совместимости вместо основной системы рендеринга, займет некоторое время, но мы никогда этого не достигнем, если не будем планировать это.
Wayland состоит из протокола и эталонной реализации под названием Weston. Проект также разрабатывает версии GTK и Qt , которые визуализируют Wayland вместо X. Ожидается, что большинство приложений получат поддержку Wayland через одну из этих библиотек без внесения изменений в приложение.
Первоначальные версии Wayland не обеспечивали сетевую прозрачность , хотя Хёгсберг отметил в 2010 году, что сетевая прозрачность возможна. [17]
Это было предпринято в качестве проекта Google Summer of Code в 2011 году, но не увенчалось успехом. [18]
Адам Джексон предполагал предоставление удаленного доступа к приложению Wayland либо с помощью «считывания пикселей» (как VNC ), либо с помощью отправки «потока команд рендеринга» по сети (как в RDP , SPICE или X11 ). [19] В начале 2013 года Хёгсберг экспериментировал с сетевой прозрачностью, используя прокси-сервер Wayland, который отправляет сжатые изображения реальному композитору. [20] [21] В августе 2017 года в GNOME появилась первая реализация такого VNC-сервера для сбора пикселей в Wayland. [22] В современных композиторах Wayland сетевая прозрачность обрабатывается в реализации xdg-desktop-portal, которая реализует портал RemoteDesktop.
Многие компоновщики Wayland также включают реализацию xdg-desktop-portal для общих задач, таких как собственный выбор файлов для собственных приложений и песочниц, таких как Flatpak (xdg-desktop-portal-gtk обычно используется как резервный выбор файлов), запись экрана, прозрачность сети, снимки экрана, выбор цвета и другие задачи, которые могут рассматриваться как требующие вмешательства пользователя и в противном случае представляющие угрозу безопасности. Обратите внимание, что xdg-desktop-portal не является специфичным для Flatpak или Wayland и может использоваться с альтернативными системами упаковки и оконными системами.
Архитектура программного обеспечения
Архитектура протокола
Протокол Wayland следует модели клиент-сервер , в которой клиентами являются графические приложения, запрашивающие отображение пиксельных буферов на экране, а сервер (композитор) — поставщик услуг, управляющий отображением этих буферов.
Реализация Wayland была разработана как двухслойный протокол: [23]
Низкоуровневый слой или протокол проводов , который управляет межпроцессным взаимодействием между двумя вовлеченными процессами — клиентом и композитором — и маршаллингом данных, которыми они обмениваются. Этот слой основан на сообщениях и обычно реализуется с использованием служб IPC ядра, в частности сокетов домена Unix в случае Linux и других Unix-подобных операционных систем. [24]
Слой высокого уровня, построенный на нем, который обрабатывает информацию, которой клиент и композитор должны обмениваться для реализации основных функций оконной системы . Этот слой реализован как «асинхронный объектно-ориентированный протокол». [25]
В то время как низкоуровневый слой был написан вручную на языке C , высокоуровневый слой автоматически генерируется из описания элементов протокола, сохраненного в формате XML . [26] Каждый раз, когда описание протокола в этом XML-файле изменяется, исходный код C, реализующий такой протокол, может быть регенерирован для включения новых изменений, что позволяет создать очень гибкий, расширяемый и защищенный от ошибок протокол.
Эталонная реализация протокола Wayland разделена на две библиотеки : библиотека, используемая клиентами Wayland, называется libwayland-client, и библиотека, используемая композиторами Wayland, называется libwayland-server. [27]
Обзор протокола
Протокол Wayland описывается как «асинхронный объектно-ориентированный протокол». [25] Объектно-ориентированный означает, что услуги, предлагаемые компоновщиком, представлены в виде серии объектов, находящихся на одном и том же компоновщике. Каждый объект реализует интерфейс , который имеет имя, ряд методов (называемых запросами ), а также несколько связанных событий . Каждый запрос и событие имеют ноль или более аргументов, каждый из которых имеет имя и тип данных . Протокол является асинхронным в том смысле, что запросы не должны ждать синхронизированных ответов или ACK , избегая времени задержки в обоих направлениях и достигая улучшенной производительности.
Клиенты Wayland могут сделать запрос (вызов метода) на некотором объекте, если интерфейс объекта поддерживает этот запрос. Клиент также должен предоставить требуемые данные для аргументов такого запроса. Это способ, которым клиенты запрашивают услуги у компоновщика. Компоновщик, в свою очередь, отправляет информацию обратно клиенту, заставляя объект генерировать события (вероятно, также с аргументами). Эти события могут быть сгенерированы компоновщиком в ответ на определенный запрос или асинхронно, в зависимости от возникновения внутренних событий (например, от устройства ввода) или изменения состояния. Ошибочные состояния также сигнализируются компоновщиком как события. [25]
Чтобы клиент мог сделать запрос к объекту, он сначала должен сообщить серверу идентификационный номер, который он будет использовать для идентификации этого объекта. [25] В компоновщике есть два типа объектов: глобальные объекты и неглобальные объекты. Компоновщик объявляет глобальные объекты клиентам при их создании (а также при их уничтожении), в то время как неглобальные объекты обычно создаются другими объектами, которые уже существуют как часть их функциональности. [28]
Интерфейсы и их запросы и события являются основными элементами, определяющими протокол Wayland. Каждая версия протокола включает набор интерфейсов вместе с их запросами и событиями, которые, как ожидается, будут в любом компоновщике Wayland. При желании компоновщик Wayland может определять и реализовывать свои собственные интерфейсы, которые поддерживают новые запросы и события, тем самым расширяя функциональность за пределы основного протокола. [29] Для облегчения изменений в протоколе каждый интерфейс содержит атрибут «номер версии» в дополнение к своему имени; этот атрибут позволяет различать варианты одного и того же интерфейса. Каждый компоновщик Wayland показывает не только доступные интерфейсы, но и поддерживаемые версии этих интерфейсов. [30]
Основные интерфейсы Wayland
Интерфейсы текущей версии протокола Wayland определены в файле protocol/wayland.xml исходного кода Wayland. [26] Это XML- файл, в котором перечислены существующие интерфейсы текущей версии вместе с их запросами, событиями и другими атрибутами. Этот набор интерфейсов является минимальным, требуемым для реализации любым композитором Wayland.
Некоторые из самых основных интерфейсов протокола Wayland: [29]
wl_display – основной глобальный объект, специальный объект для инкапсуляции самого протокола Wayland
wl_registry – объект глобального реестра, в котором композитор регистрирует все глобальные объекты, которые он хочет сделать доступными для всех клиентов
wl_compositor – объект, представляющий собой композитора, который отвечает за объединение различных поверхностей в один выходной файл.
wl_surface – объект, представляющий собой прямоугольную область на экране, определяемую местоположением, размером и содержимым пикселей
wl_buffer – объект, который при присоединении к объекту wl_surface предоставляет его отображаемое содержимое
wl_output – объект, представляющий отображаемую область экрана
wl_pointer , wl_keyboard , wl_touch – объекты, представляющие различные устройства ввода, такие как указатели или клавиатуры
wl_seat – объект, представляющий собой место (набор устройств ввода/вывода) в многоместных конфигурациях
Типичный сеанс клиента Wayland начинается с открытия соединения с композитором с помощью объекта wl_display . Это специальный локальный объект, который представляет соединение и не находится на сервере. Используя его интерфейс, клиент может запросить глобальный объект wl_registry из композитора, где находятся все имена глобальных объектов, и привязать те, которые интересуют клиента. Обычно клиент привязывает по крайней мере объект wl_compositor , из которого он будет запрашивать один или несколько объектов wl_surface для отображения вывода приложения на дисплее. [28]
Интерфейсы расширения Wayland
Компоновщик Wayland может определять и экспортировать собственные дополнительные интерфейсы. [29] Эта функция используется для расширения протокола за пределы базовой функциональности, предоставляемой основными интерфейсами, и стала стандартным способом реализации расширений протокола Wayland. Некоторые компоновщики могут добавлять пользовательские интерфейсы для предоставления специализированных или уникальных функций. Компоновщик-эталон Wayland, Weston, использовал их для реализации новых экспериментальных интерфейсов в качестве испытательного стенда для новых концепций и идей, некоторые из которых позже стали частью основного протокола (например, интерфейс wl_subsurface , добавленный в Wayland 1.4 [31] ).
Протоколы расширения основного протокола
Протокол XDG-Shell
Протокол XDG-Shell (см. freedesktop.org для XDG) — это расширенный способ управления поверхностями в компоновщиках Wayland (не только Weston). Традиционный способ манипулирования поверхностями (максимизация, минимизация, полноэкранный режим и т. д.) — использование функций wl_shell_*(), которые являются частью основного протокола Wayland и находятся в libwayland-client . Реализация протокола xdg-shell, напротив, должна предоставляться компоновщиком Wayland. Поэтому вы найдете заголовок xdg-shell-client-protocol.h в исходном дереве Weston.
xdg_shell — это протокол, призванный заменить wl_shell в долгосрочной перспективе, но не входящий в основной протокол Wayland. Он запускается как нестабильный API, изначально предназначенный для использования в качестве места разработки, и как только функции будут определены в соответствии с требованиями нескольких оболочек рабочего стола, его можно будет, наконец, сделать стабильным. Он предоставляет в основном два новых интерфейса: xdg_surface и xdg_popup. Интерфейс xdg_surface реализует окно в стиле рабочего стола, которое можно перемещать, изменять размер, разворачивать и т. д.; он предоставляет запрос на создание отношений дочерний/родительский. Интерфейс xdg_popup реализует всплывающее окно/меню в стиле рабочего стола; xdg_popup всегда является временным для другой поверхности, а также имеет неявный захват. [32]
Протокол Wayland не включает API рендеринга. [34] [14] [35] [36] : 2 Вместо этого Wayland следует модели прямого рендеринга , в которой клиент должен рендерить содержимое окна в буфер, общий с композитором. [37] Для этой цели клиент может выбрать выполнение всего рендеринга самостоятельно, использовать библиотеку рендеринга, такую как Cairo или OpenGL , или положиться на движок рендеринга высокоуровневых библиотек виджетов с поддержкой Wayland, таких как Qt или GTK . Клиент также может опционально использовать другие специализированные библиотеки для выполнения определенных задач, например Freetype для рендеринга шрифтов .
Результирующий буфер с визуализированным содержимым окна сохраняется в объекте wl_buffer . Внутренний тип этого объекта зависит от реализации. Единственное требование заключается в том, что данные содержимого должны быть общими для клиента и компоновщика. Если клиент использует программный (ЦП) рендерер, а результат сохраняется в системной памяти , то клиент и компоновщик могут использовать общую память для реализации связи буфера без дополнительных копий. Протокол Wayland уже изначально предоставляет этот тип буфера общей памяти через интерфейсы wl_shm [38] и wl_shm_pool [39] . Недостатком этого метода является то, что компоновщику может потребоваться выполнить дополнительную работу (обычно для копирования общих данных в ГП) для их отображения, что приводит к снижению производительности графики.
Наиболее типичным случаем является рендеринг клиента непосредственно в буфер видеопамяти с использованием API с аппаратным ускорением (GPU), например OpenGL , OpenGL ES или Vulkan . Клиент и композитор могут совместно использовать этот буфер пространства GPU, используя специальный обработчик для ссылки на него. [40] Этот метод позволяет композитору избегать дополнительного копирования данных через себя основного буфера памяти методом клиент-композитор-GPU, что приводит к более высокой производительности графики, и поэтому является предпочтительным. Композитор может дополнительно оптимизировать композицию финальной сцены для отображения на дисплее, используя тот же API аппаратного ускорения, что и клиент API.
Когда рендеринг в общем буфере завершен, клиент Wayland должен дать команду компоновщику представить отрендеренное содержимое буфера на дисплее. Для этого клиент привязывает объект буфера, который хранит отрендеренное содержимое, к объекту поверхности и отправляет запрос «коммит» на поверхность, передавая эффективный контроль над буфером компоновщику. [23] Затем клиент ждет, пока компоновщик освободит буфер (сигнализируется событием), если он хочет повторно использовать буфер для рендеринга другого кадра, или он может использовать другой буфер для рендеринга нового кадра, и, когда рендеринг будет завершен, привязать этот новый буфер к поверхности и зафиксировать его содержимое. [41] : 7 Процедура, используемая для рендеринга, включая количество задействованных буферов и их управление, полностью находится под контролем клиента. [41] : 7
Сравнение с другими оконными системами
Различия между Wayland и X
Между Wayland и X есть несколько различий в плане производительности, удобства поддержки кода и безопасности: [42]
Архитектура
Менеджер композиции — это отдельная, дополнительная функция в X, в то время как Wayland объединяет сервер отображения и композитор в одну функцию. [43] [35] Кроме того, он включает в себя некоторые задачи менеджера окон , который в X является отдельным клиентским процессом. [44]
Композитинг
Композитинг необязателен в X, но обязателен в Wayland. Композитинг в X является «активным»; то есть, композитор должен извлечь все пиксельные данные, что приводит к задержке. В Wayland композитинг является «пассивным», что означает, что композитор получает пиксельные данные напрямую от клиентов. [45] : 8–11
Рендеринг
X-сервер сам по себе способен выполнять рендеринг, хотя ему также может быть поручено отображать отрендеренное окно, отправленное клиентом. В отличие от этого, Wayland не предоставляет API для рендеринга, а делегирует клиентам такие задачи (включая рендеринг шрифтов, виджетов и т. д.). [43] [35] Декорации окон должны быть отрисованы на стороне клиента (например, графическим инструментом) или на стороне сервера (композитором) с опциональным протоколом xdg-decoration, если композитор решит реализовать такую функциональность. [46]
Безопасность
Wayland изолирует вход и выход каждого окна, достигая конфиденциальности, целостности и доступности для обоих. Первоначальный дизайн X не имел этих важных функций безопасности, [11] [12] [13] хотя были разработаны некоторые расширения, пытающиеся смягчить это. [47] [48] [49] Кроме того, поскольку подавляющее большинство кода выполняется в клиенте, меньше кода должно запускаться с привилегиями root , что повышает безопасность, [11] хотя несколько популярных дистрибутивов Linux теперь позволяют запускать X-сервер без привилегий root. [50] [51] [52] [53]
Межпроцессное взаимодействие
X-сервер предоставляет базовый метод связи между X-клиентами, позже расширенный соглашениями ICCCM . Эта связь между X-клиентами используется оконными менеджерами, а также для реализации X-сессий , выбора и перетаскивания , а также других функций. Основной протокол Wayland вообще не поддерживает связь между клиентами Wayland, поскольку соответствующая функциональность (при необходимости) рассматривается сообществом Wayland как нечто, что должно быть реализовано средами рабочего стола (такими как KDE или GNOME) или третьей стороной (например, с использованием собственного IPC базовой операционной системы).
Нетворкинг
X Window System — это архитектура , которая была разработана в своей основе для работы по сети. Wayland не обеспечивает прозрачности сети сама по себе; [14] однако, композитор может реализовать любой протокол удаленного рабочего стола для достижения удаленного отображения. Кроме того, существуют исследования потоковой передачи изображений и сжатия Wayland, которые могли бы обеспечить удаленный доступ к буферу кадров, аналогичный VNC . [21]
Совместимость с X
XWayland — это X-сервер , работающий как клиент Wayland, и, таким образом, способный отображать собственные клиентские приложения X11 в среде компоновщика Wayland. [54] Это похоже на то, как XQuartz запускает приложения X в собственной оконной системе macOS . Целью XWayland является облегчение перехода от X Window System к средам Wayland, предоставляя в то же время способ запуска неперенесенных приложений. XWayland был включен в состав X.Org Server версии 1.16. [55]
Наборы инструментов для виджетов, такие как Qt 5 и GTK 3, могут переключать свой графический бэкэнд во время выполнения, [56] позволяя пользователям выбирать во время загрузки , хотят ли они запустить приложение через X или через Wayland. Qt 5 предоставляет -platformпараметр командной строки [57] для этого эффекта, тогда как GTK 3 позволяет пользователям выбирать желаемый бэкэнд GDK , устанавливая GDK_BACKENDпеременную среды Unix . [56] [58]
Композиторы Wayland
Серверы отображения , реализующие протокол сервера отображения Wayland, также называются композиторами Wayland , поскольку они дополнительно выполняют задачу менеджера окон компоновки .
Библиотека wlroots представляет собой модульную реализацию Wayland, которая служит основой для нескольких композиторов [59]
Enlightenment заявила о полной поддержке Wayland с версии 0.20 [60], но в настоящее время ведутся работы по созданию полноценного композитора Wayland [61]
KWin имеет почти полную поддержку Wayland по состоянию на 2021 год [62]
Mutter поддерживал отдельную ветку для интеграции Wayland для GNOME 3.9 (в сентябре 2013 г.); [63] в выпуске 3.13.1 в 2014 г. ветка Wayland была объединена с основным репозиторием. [64]
Clayland – простой пример компоновщика Wayland с использованием Clutter
Sway – мозаичный компоновщик Wayland, основанный на wlroots; это встроенная замена оконному менеджеру i3 X11. [65] [66] [67]
Hyprland – независимый тайловый компоновщик Wayland, написанный на C++. Примечательные особенности Hyprland включают динамическую тайловую разметку, вкладки окон, чистую и читаемую кодовую базу C++ и пользовательский рендерер, который обеспечивает анимацию окон, скругленные углы и Dual-Kawase Blur на прозрачных окнах. [68] [69]
Woodland — стековый компоновщик Wayland на основе wlroots, написанный на языке C, вдохновленный TinyWL и ориентированный на простоту и стабильность.
Вестон
Weston — это эталонная реализация композитора Wayland [70] , также разработанная проектом Wayland. Она написана на языке C и опубликована под лицензией MIT . Weston имеет официальную поддержку только для операционной системы Linux из-за зависимости Weston от определенных функций ядра Linux , таких как настройка режима ядра , Graphics Execution Manager (GEM) и udev , которые не были реализованы в других Unix-подобных операционных системах. [71] При работе в Linux обработка входного оборудования зависит от evdev , в то время как обработка буферов зависит от Generic Buffer Management (GBM). Однако в 2013 году был анонсирован прототип порта Weston для FreeBSD . [72]
Weston использует GEM для совместного использования буферов приложений между композитором и приложениями. Он содержит подключаемую систему «оболочек» для общих функций рабочего стола, таких как доки и панели. [21] Клиенты отвечают за отрисовку границ своих окон и их декор. Для рендеринга Weston может использовать OpenGL ES [74] или библиотеку pixman для выполнения программного рендеринга . [75] Полная реализация OpenGL не используется, поскольку на большинстве современных систем установка полных библиотек OpenGL также установит GLX и другие библиотеки поддержки X Window System в качестве зависимостей. [76]
Интерфейс удаленного доступа для Weston был предложен в октябре 2013 года сотрудником RealVNC . [77]
Raspberry Pi Foundation совместно с Collabora выпустили Maynard и работают над улучшением производительности и потреблением памяти. [79] [80]
libinput
Код Weston для обработки устройств ввода (клавиатуры, указатели, сенсорные экраны и т. д.) был выделен в отдельную библиотеку, называемую libinput , поддержка которой впервые была реализована в Weston 1.5. [81] [82]
Libinput обрабатывает устройства ввода для нескольких композиторов Wayland, а также предоставляет универсальный драйвер ввода X.Org Server . Он нацелен на предоставление одной реализации для нескольких композиторов Wayland с общим способом обработки событий ввода, при этом минимизируя количество пользовательского кода ввода, который композиторы должны включить. libinput обеспечивает обнаружение устройств [ необходимо разъяснение ] (через udev ), обработку устройств, обработку событий устройств ввода и абстракцию. [83] [84]
Версия 1.0 libinput последовала за версией 0.21 и включила поддержку планшетов, наборов кнопок и жестов тачпада. Эта версия будет поддерживать стабильный API/ABI. [85]
Поскольку GNOME/GTK и KDE Frameworks 5 [86] внесли необходимые изменения, Fedora 22 заменит драйверы X.Org evdev и Synaptics на libinput. [87]
Начиная с версии 1.16, сервер X.Org получил поддержку библиотеки libinput в виде оболочки под названием xf86-input-libinput . [88] [89]
Некоторые приложения (особенно те, которые связаны с доступностью ) требуют привилегированных возможностей, которые должны работать в разных композиторах Wayland. В настоящее время [ когда? ] приложения под Wayland, как правило, не могут выполнять какие-либо конфиденциальные задачи, такие как создание снимков экрана или внедрение событий ввода, без прохождения через xdg-desktop-portal или получения привилегированного доступа к системе.
Модуль безопасности Wayland — это способ делегировать решения по безопасности в рамках компоновщика централизованному механизму принятия решений по безопасности. [90]
Принятие
Протокол Wayland разработан таким образом, чтобы быть простым, поэтому необходимо определить и реализовать дополнительные протоколы и интерфейсы для достижения целостной системы окон. По состоянию на июль 2014 года [обновлять]эти дополнительные интерфейсы находились в разработке. Таким образом, хотя наборы инструментов уже полностью поддерживают Wayland, разработчики графических оболочек сотрудничают с разработчиками Wayland, создавая необходимые дополнительные интерфейсы.
Дистрибутивы Linux для настольных компьютеров
По состоянию на 2020 год [обновлять]большинство дистрибутивов Linux поддерживают Wayland из коробки. Вот несколько примечательных примеров:
Fedora , начиная с версии 25 (выпущенной 22 ноября 2016 г.), использует Wayland для сеанса рабочего стола GNOME 3.22 по умолчанию, а X.Org — в качестве запасного варианта, если графический драйвер не поддерживает Wayland. [91] Fedora использует Wayland по умолчанию для сеанса рабочего стола KDE, начиная с версии 34 (выпущенной 27 апреля 2021 г.)
Ubuntu поставляется с Wayland по умолчанию в Ubuntu 17.10 (Artful Aardvark). [92] Однако Ubuntu 18.04 LTS вернулась к X.Org по умолчанию из-за нескольких проблем. [93] [94] Начиная с Ubuntu 21.04, Wayland снова является версией по умолчанию. [95]
Red Hat Enterprise Linux поставляет Wayland в качестве сеанса по умолчанию в версии 8, выпущенной 7 мая 2019 года. [96]
Debian поставляет Wayland в качестве сеанса по умолчанию для GNOME начиная с версии 10, выпущенной 6 июля 2019 года. [97]
Slackware Linux включил Wayland 20 февраля 2020 года [98] в разрабатываемую версию -current, которая стала версией 15.0.
Manjaro поставляет Wayland по умолчанию в версии Gnome Manjaro 20.2 (Nibia) (выпущенной 22 ноября 2020 г.). [99]
Известный первопроходец:
RebeccaBlackOS — это дистрибутив Linux на основе Debian [100] , который позволяет легко опробовать настоящий рабочий стол Wayland без необходимости вносить какие-либо изменения в основную операционную систему компьютера. [101] Он использовался еще с 2012 года для демонстрации Wayland. [102] [103]
Поддержка инструментария
В комплект инструментов, поддерживающих Wayland, входят следующие:
Clutter полностью поддерживает Wayland. [104] [105] [106]
EFL имеет полную поддержку Wayland, за исключением выбора. [107]
GTK 3.20 имеет полную поддержку Wayland. [108]
Qt 5 имеет полную поддержку Wayland и может использоваться для написания как композиторов Wayland, так и клиентов Wayland.
Поддержка SDL для Wayland дебютировала в версии 2.0.2 [109] и была включена по умолчанию с версии 2.0.4. [110]
Окружения рабочего стола, находящиеся в процессе переноса из X в Wayland, включают GNOME , [113] KDE Plasma 6 [114] и Enlightenment . [115]
В ноябре 2015 года был анонсирован Enlightenment e20 с полной поддержкой Wayland. [116] [60] [117] GNOME 3.20 стала первой версией с полной сессией Wayland. [118] GNOME 3.22 включала значительно улучшенную поддержку Wayland в GTK, Mutter и GNOME Shell. [119] GNOME 3.24 поставляла поддержку фирменных драйверов Nvidia в Wayland. [120]
Поддержка Wayland для KDE Plasma была отложена до выпуска Plasma 5, [121] хотя ранее KWin 4.11 получил экспериментальную поддержку Wayland. [122] Версия 5.4 Plasma была первой с сеансом Wayland. [123] В 2020 году Klipper был портирован на Wayland, а Plasma 5.20, выпущенная в октябре 2020 года, улучшила трансляцию экрана и запись. [124] [125] В Plasma 6 графический сеанс по умолчанию, использующий Wayland, был установлен в качестве сеанса по умолчанию, что сделало сеанс X11 вторичным. [126]
Другое программное обеспечение
Другое программное обеспечение, поддерживающее Wayland, включает следующее:
Intelligent Input Bus работает над поддержкой Wayland, она может быть готова к Fedora 22. [127]
RealVNC опубликовала предварительную версию Wayland для разработчиков в июле 2014 года. [77] [128] [129]
wayvnc — это VNC-сервер для композиторов Wayland на базе wlroots.
Maliit — это фреймворк метода ввода , работающий под управлением Wayland. [130] [131] [132]
Eclipse был создан для работы на Wayland в ходе проекта GSoC в 2014 году. [135]
Vulkan WSI (Window System Interface) — это набор вызовов API, которые выполняют ту же функцию, что и EGL для OpenGL и OpenGL ES или GLX для OpenGL на X11. Vulkan WSI включает поддержку Wayland с самого начала: VK_USE_PLATFORM_WAYLAND_KHR. Клиенты Vulkan могут работать на немодифицированных серверах Wayland, включая Weston, GENIVI LayerManager, Mutter / GNOME Shell, Enlightenment и другие. WSI позволяет приложениям обнаруживать различные графические процессоры в системе и отображать результаты рендеринга графического процессора в оконной системе. [136]
Waydroid (ранее назывался Anbox -Halium), контейнер для приложений Android, запускаемых в дистрибутивах Linux с использованием Wayland.
Мобильное и встраиваемое оборудование
Мобильное и встраиваемое оборудование, поддерживающее Wayland, включает в себя следующее:
Jolla : Смартфоны от Jolla используют Wayland. Он также используется как стандарт, когда Linux Sailfish OS используется с оборудованием от других поставщиков или когда он устанавливается на устройства Android пользователями. [138] [139] [140]
Кристиан Хёгсберг, разработчик графики Linux и X.Org , ранее работавший над AIGLX и DRI2 , начал Wayland как проект в свободное время в 2008 году, работая в Red Hat . [144] [145] [146] [147] Его заявленной целью была система, в которой «каждый кадр идеален, под этим я подразумеваю, что приложения смогут контролировать рендеринг настолько, что мы никогда не увидим разрывов, задержек, перерисовки или мерцания». Хёгсберг ехал через город Уэйленд, штат Массачусетс, когда основные концепции «кристаллизовались», отсюда и название ( Уэстон и Мейнард также являются близлежащими городами в том же районе, продолжая отсылку). [146] [148]
В октябре 2010 года Wayland стал проектом freedesktop.org . [149] [150] В рамках миграции предыдущая группа Google была заменена списком рассылки wayland-devel в качестве центральной точки обсуждения и разработки проекта.
Библиотеки клиента и сервера Wayland изначально были выпущены под лицензией MIT , [151] в то время как эталонный композитор Weston и некоторые примеры клиентов использовали GNU General Public License версии 2. [ 152] Позже весь код GPL был повторно лицензирован под лицензией MIT, «чтобы упростить перемещение кода между эталонной реализацией и фактическими библиотеками». [153] В 2015 году было обнаружено, что текст лицензии, используемый Wayland, был немного другой и более старой версией лицензии MIT, и текст лицензии был обновлен до текущей версии, используемой проектом X.Org (известной как MIT Expat License ). [6]
↑ Хёгсберг, Кристиан (30 сентября 2008 г.). «Первоначальная фиксация» . Проверено 4 августа 2024 г.
^ ab "[АНОНС] wayland 1.23.0". 30 мая 2024 г.
^ ab https://lists.freedesktop.org/archives/wayland-devel/2024-October/043858.html
^ "Wayland & Weston Compositor Ported To DragonFlyBSD - Phoronix". www.phoronix.com . Архивировано из оригинала 16 августа 2016 года . Получено 20 июля 2016 года .
^ «Мой прогресс в уровне совместимости Wayland». 24 июля 2022 г.
^ abc Harrington, Bryce (15 сентября 2015 г.). "[АНОНС] wayland 1.8.93". freedesktop.org (список рассылки). Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ "wayland/wayland: root/COPYING". gitlab.freedesktop.org . 9 июня 2015 г. . Получено 4 августа 2024 г. .
^ Ларабель, Майкл (10 июня 2015 г.). «Лицензия MIT компании Wayland будет обновлена/исправлена». Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. Получено 17 апреля 2016 г.
^ abc "Wayland". Проект Wayland . Архивировано из оригинала 2 марта 2011 года . Получено 9 мая 2016 года .
^ Сенгар, Шивам Сингх (16 июня 2018 г.). «Wayland против Xorg: чем они похожи и чем они отличаются». secjuice . Архивировано из оригинала 23 сентября 2020 г. . Получено 10 сентября 2020 г. .
^ abc Kerrisk, Michael (25 сентября 2012 г.). "XDC2012: безопасность графического стека". LWN.net . Архивировано из оригинала 28 марта 2016 г. Получено 13 апреля 2016 г.
^ ab Peres, Martin (21 февраля 2014 г.). «Wayland Compositors — Why and How to Handle Privileged Clients!». Архивировано из оригинала 10 марта 2016 г. Получено 17 апреля 2016 г.
^ ab Graesslin, Martin (23 ноября 2015 г.). «Взгляд на безопасность Plasma/Wayland». Архивировано из оригинала 27 августа 2022 г. Получено 18 апреля 2016 г.
^ abcde "Wayland FAQ". Проект Wayland . Архивировано из оригинала 2 апреля 2016 года . Получено 9 мая 2016 года .
^ Майкл Ларабель (20 мая 2009 г.). «The State Of The Wayland Display Server». Phoronix . Архивировано из оригинала 17 октября 2021 г. Получено 17 октября 2021 г.
^ Корбет, Джонатан (5 ноября 2010 г.). "LPC: Жизнь после X". LWN.net . Архивировано из оригинала 28 апреля 2016 г. Получено 17 апреля 2016 г.
^ Høgsberg, Kristian (9 ноября 2010 г.). "Аргумент о прозрачности сети". Архивировано из оригинала 15 августа 2020 г. . Получено 14 января 2020 г. . Wayland не является API удаленного рендеринга, как X, но это не исключает прозрачности сети. Клиенты выполняют рендеринг в общий буфер, а затем должны сообщить компоновщику (...), что они изменили. Затем компоновщик может отправить новые пиксели в этой области по сети. Протокол Wayland уже сильно асинхронен, поэтому он должен уметь изящно обрабатывать небольшую задержку сети. Удаленный полноэкранный просмотр видео или игры не будут работать хорошо, [но] я не знаю никакой другой системы отображения, которая бы справлялась так хорошо и прозрачно.
^ Ларабель, Майкл (18 августа 2011 г.). «Проект удаленного сервера Wayland: работает ли он уже?». Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. Получено 17 апреля 2016 г.
^ Джексон, Адам (9 ноября 2010 г.). «[Re:] Ubuntu движется в сторону Wayland». [email protected] (список рассылки). Архивировано из оригинала 8 марта 2021 г. . Получено 14 января 2020 г. .
^ Стоун, Дэниел (28 января 2013 г.). Реальная история Wayland и X (речь). linux.conf.au 2013. Канберра. Архивировано из оригинала 10 августа 2017 г. Получено 13 апреля 2016 г.
^ abc Уиллис, Натан (13 февраля 2013 г.). "LCA: Пути Уэйленда". LWN.net . Архивировано из оригинала 24 июня 2016 г. Получено 19 мая 2016 г.
^ Александерсен, Дэниел (28 августа 2017 г.). «Возможности удаленного рабочего стола возвращаются в GNOME на Wayland». Ctrl.blog . Архивировано из оригинала 28 августа 2017 г. . Получено 29 августа 2017 г. .
^ ab "The Hello Wayland Tutorial". 8 июля 2014 г. Архивировано из оригинала 13 июля 2014 г. Получено 25 июля 2014 г.
^ Хегсберг, Кристиан. "Глава 4. Протокол Wayland и модель работы". Протокол Wayland . Формат провода.
^ abcd Хегсберг, Кристиан. "Глава 4. Протокол Wayland и модель работы". Протокол Wayland . Основные принципы.
↑ Аб Хёгсберг, Кристиан (8 мая 2024 г.). "протокол/wayland.xml". gitlab.freedesktop.org . Проверено 5 августа 2024 г.
^ ab Paalanen, Pekka (25 июля 2014 г.). "Проектирование протокола Wayland: продолжительность жизни объекта". Архивировано из оригинала 29 мая 2016 г. Получено 6 апреля 2016 г.
^ abc Høgsberg, Kristian. "Глава 4. Протокол Wayland и модель работы". Протокол Wayland . Интерфейсы.
^ Хегсберг, Кристиан. "Глава 4. Протокол Wayland и модель работы". Протокол Wayland . Версии.
^ ab Høgsberg, Kristian (24 января 2014 г.). «Wayland and Weston 1.4 вышел». Список рассылки wayland-devel . Архивировано из оригинала 5 апреля 2020 г. Получено 14 января 2020 г.
^ "xdg_shell: Добавление нового протокола оболочки". freedesktop.org . 3 декабря 2013 г. Получено 4 августа 2024 г.
^ "GENIVI/wayland-ivi-extension". GitHub . 17 ноября 2021 г. Архивировано из оригинала 24 марта 2017 г. Получено 17 августа 2016 г.
^ Хегсберг, Кристиан. "Глава 3. Архитектура Wayland". Протокол Wayland . X против архитектуры Wayland.
^ abc Vervloesem, Koen (15 февраля 2012 г.). "FOSDEM: сервер отображения Wayland". LWN.net . Архивировано из оригинала 5 июня 2016 г. Получено 9 мая 2016 г.
^ Barnes, Jesse. "Введение в Wayland" (PDF) . Intel Open Source Technology Center. Архивировано (PDF) из оригинала 6 апреля 2016 г. . Получено 18 апреля 2016 г. . Не включает API рендеринга — клиенты используют то, что хотят, и отправляют дескрипторы буфера на сервер
^ Хегсберг, Кристиан. "Приложение A. Спецификация протокола Wayland". Протокол Wayland . wl_shm - поддержка общей памяти.
^ Хегсберг, Кристиан. "Приложение A. Спецификация протокола Wayland". Протокол Wayland . wl_shm_pool — общий пул памяти.
^ Paalanen, Pekka (21 ноября 2012 г.). «О поддержке клиентов Wayland GL и фирменных встраиваемых платформ». Архивировано из оригинала 6 апреля 2016 г. Получено 6 апреля 2016 г. Совместное использование буфера работает путем создания дескриптора для буфера и передачи этого дескриптора другому процессу, который затем использует этот дескриптор, чтобы графический процессор снова получил доступ к тому же буферу.
^ ab Høgsberg, Kristian. "Wayland Documentation 1.3" (PDF) . Архивировано (PDF) из оригинала 10 сентября 2015 г. . Получено 16 марта 2016 г. .
^ Гриффит, Эрик (7 июня 2013 г.). «Ситуация с Уэйландом: факты о X против Уэйланда». Phoronix.com . стр. 2. Архивировано из оригинала 24 сентября 2015 г. Получено 17 апреля 2016 г.
^ ab "Wayland Architecture". Проект Wayland . Архивировано из оригинала 13 марта 2016 года . Получено 9 мая 2016 года .
↑ Эдж, Джейк (11 апреля 2012 г.). «LFCS 2012: X и Уэйланд». LWN.net . Архивировано из оригинала 30 апреля 2016 г. Получено 17 апреля 2016 г.
^ "Архитектура Wayland/X Compositor на примере: Enlightenment DR19" (PDF) . Получено 4 августа 2024 г.
^ ab Graesslin, Martin (7 февраля 2013 г.). «Украшения окон на стороне клиента и Wayland». Архивировано из оригинала 13 апреля 2016 г. Получено 17 апреля 2016 г.
^ "X.Org Security". X.Org Foundation . Архивировано из оригинала 22 декабря 2017 г. Получено 2 июля 2017 г. X-сервер уже давно включает расширение SECURITY, которое обеспечивает поддержку простой модели доверенного/недоверенного соединения.
^ Wiggins, David P. (15 ноября 1996 г.). «Спецификация расширения безопасности». X Consortium Standard . Архивировано из оригинала 8 декабря 2018 г. Получено 2 июля 2017 г.
^ Уолш, Имон Ф. (2009). "X Access Control Extension Specification". Архивировано из оригинала 9 января 2016 года . Получено 2 июля 2017 года .
^ "Debian переходит на некорневой сервер X.Org по умолчанию - Phoronix". www.phoronix.com . Архивировано из оригинала 2 апреля 2018 г. Получено 2 апреля 2018 г.
^ "Non root Xorg - Gentoo Wiki". wiki.gentoo.org . Архивировано из оригинала 2 апреля 2018 г. Получено 2 апреля 2018 г.
^ "X/Rootless - Ubuntu Wiki". wiki.ubuntu.com . Архивировано из оригинала 2 апреля 2018 года . Получено 2 апреля 2018 года .
^ "1078902 – Xorg без прав root". bugzilla.redhat.com . Архивировано из оригинала 2 апреля 2018 г. Получено 2 апреля 2018 г.
^ "X Clients under Wayland (XWayland)". Проект Wayland. Архивировано из оригинала 27 августа 2022 года . Получено 18 июля 2014 года .
^ "АНОНС: xorg-server 1.16.0". freedesktop.org . 17 июля 2014 г. Архивировано из оригинала 8 марта 2021 г. Получено 14 января 2020 г.
^ ab Høgsberg, Kristian (3 января 2011 г.). "Multiple backends for GTK". Архивировано из оригинала 27 августа 2022 г. Получено 10 марта 2016 г.
^ "QtWayland". Qt Wiki . Архивировано из оригинала 10 марта 2016 года . Получено 9 марта 2016 года .
^ "Полная поддержка Wayland в GTK+". GNOME wiki . Архивировано из оригинала 7 сентября 2015 г. Получено 10 марта 2016 г.
^ "README.md". Проект wlroots на GitLab .
^ ab Larabel, Michael (30 ноября 2015 г.). "Enlightenment 0.20 Arrives With Full Wayland Support & Better FreeBSD Support". Phoronix.com . Архивировано из оригинала 15 марта 2016 г. . Получено 17 апреля 2016 г. .
^ "Wayland". www.enlightenment.org . Архивировано из оригинала 9 марта 2016 года . Получено 8 марта 2016 года .
^ "Plasma 5.21". Сообщество KDE . 16 февраля 2021 г. Архивировано из оригинала 8 марта 2021 г. Получено 9 марта 2021 г.
^ "Index of /sources/mutter-wayland". download.gnome.org . Архивировано из оригинала 21 мая 2014 . Получено 27 мая 2014 .
^ "Обновить версию до 3.13.1". 30 апреля 2014 г.
^ "Sway". swaywm.org . Архивировано из оригинала 20 декабря 2018 . Получено 20 декабря 2018 .
^ "swaywm/wlroots". GitHub . Архивировано из оригинала 19 декабря 2018 . Получено 28 октября 2018 .
^ "swaywm/sway". GitHub . Архивировано из оригинала 28 августа 2019 . Получено 28 октября 2018 .
^ "Хайпрланд - ArchWiki" . Wiki.archlinux.org . Проверено 28 января 2024 г.
^ "Hyprland: Динамический компоновщик окон с тайлами". hyprland.org . Получено 28 января 2024 г. .
^ "README". gitlab.freedesktop.org . Получено 4 августа 2024 г. .
^ "Файл README из репозитория исходного кода Wayland". freedesktop.org . Получено 4 августа 2024 г. .
^ Ларабель, Майкл (16 февраля 2013 г.). «Wayland начинает процесс портирования на FreeBSD». Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. . Получено 17 апреля 2016 г. .
^ "Добавление поддержки защиты контента в drm-backend (!48) · Merge Requests · wayland / weston". GitLab . 6 ноября 2018 г. Архивировано из оригинала 27 августа 2022 г. Получено 27 октября 2019 г.
^ Paalanen, Pekka (10 марта 2012 г.). «Что делает EGL в стеке Wayland». Архивировано из оригинала 12 октября 2016 г. Получено 19 мая 2016 г.
^ ab Larabel, Michael (6 января 2013 г.). "Программный рендерер Pixman для Weston от Wayland". Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. Получено 17 апреля 2016 г.
^ Høgsberg, Kristian (9 декабря 2010 г.). "Blender3D и фиксация курсора". Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ ab "[RFC weston] remote access interface module". freedesktop.org . 18 октября 2013 г. Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ "Maynard announcement". 16 апреля 2014 г. Архивировано из оригинала 8 марта 2017 г. Получено 16 апреля 2014 г.
^ ab "Raspberry Pi Case Study". Collabora. Архивировано из оригинала 1 сентября 2013 г. Получено 9 августа 2013 г.
^ ab "Wayland preview". Raspberry Pi. 24 февраля 2013 г. Получено 4 августа 2024 г.
^ ab Høgsberg, Kristian (20 мая 2014 г.). «Wayland and Weston 1.5.0 is released». Список рассылки wayland-devel . Архивировано из оригинала 19 октября 2019 г. Получено 14 января 2020 г.
^ Ådahl, Jonas (12 ноября 2013 г.). "[RFC] Common input device library". Список рассылки Wayland. Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ "libinput". Freedesktop.org. Архивировано из оригинала 19 апреля 2014 года . Получено 21 мая 2014 года .
^ Hutterer, Peter (8 октября 2014 г.). Объединение входных стеков с помощью libinput (выступление). X.Org Developer Conference 2014. Бордо. Архивировано из оригинала 1 ноября 2020 г. Получено 14 января 2020 г.
^ Hutterer, Peter (22 февраля 2015 г.). "libinput: the road to 1.0". Архивировано из оригинала 25 октября 2020 г. Получено 9 ноября 2019 г.
^ "Поддержка Libinput добавлена в сенсорную панель KCM". 22 февраля 2015 г. Архивировано из оригинала 24 февраля 2015 г. Получено 24 февраля 2015 г.
^ Goede, Hans de (23 февраля 2015 г.). «Libinput теперь включен как драйвер xorg по умолчанию для установок на рабочих станциях F-22». [email protected] (список рассылки). Архивировано из оригинала 24 февраля 2015 г. Получено 24 февраля 2015 г.
^ Хаттерер, Питер (24 сентября 2014 г.). "libinput - общий стек ввода для композиторов Wayland и драйверов X.Org". Архивировано из оригинала 7 апреля 2016 г. Получено 17 апреля 2016 г.
^ de Goede, Hans (1 февраля 2015 г.). "Замена xorg input - Drivers на libinput" (PDF) . Архивировано (PDF) из оригинала 22 ноября 2021 г. . Получено 18 апреля 2016 г. .
^ ab Dodier-Lazaro, Steve; Peres, Martin (9 октября 2014 г.). Безопасность в средах рабочего стола на базе Wayland: привилегированные клиенты, авторизация, аутентификация и песочница! (Речь). X.Org Developer Conference 2014. Бордо. Архивировано из оригинала 9 апреля 2016 г. Получено 18 апреля 2016 г.
^ "Changes/WaylandByDefault - Fedora Project Wiki". fedoraproject.org . Архивировано из оригинала 27 декабря 2015 г. Получено 9 ноября 2020 г.
^ "ReleaseNotes for Ubuntu 17.10". Canonical. Архивировано из оригинала 24 ноября 2017 г. Получено 10 ноября 2017 г.
^ "Ubuntu 18.04 вернется к устаревшему Xorg" . Получено 16 декабря 2023 г.
^ "Bionic Beaver 18.04 LTS будет использовать Xorg по умолчанию". Канонический. Архивировано из оригинала 18 февраля 2018 г. Получено 18 февраля 2018 г.
^ "Ubuntu 21.04 уже здесь". Блог Canonical Ubuntu . Архивировано из оригинала 22 апреля 2021 г. Получено 14 июня 2021 г.
^ "Заметки о выпуске Red Hat Enterprise Linux 8.0". Red Hat Customer Portal . Архивировано из оригинала 25 ноября 2020 г. Получено 25 декабря 2020 г.
^ "NewInBuster - Debian Wiki". wiki.debian.org . Архивировано из оригинала 25 сентября 2019 г. . Получено 15 июля 2019 г. .
^ "Slackware ChangeLogs". Slackware Linux. Архивировано из оригинала 30 января 2020 года . Получено 26 февраля 2020 года .
^ "Manjaro 20.2 Nibia выпущен". 3 декабря 2020 г. Архивировано из оригинала 4 декабря 2020 г. Получено 3 декабря 2020 г.
^ "Wayland Live OS теперь основана на Debian Testing, Working KDE Wayland Support". Phoronix. Архивировано из оригинала 11 августа 2019 года . Получено 14 января 2020 года .
^ "RebeccaBlackOS". Sourceforge. Архивировано из оригинала 25 ноября 2016 года . Получено 11 октября 2016 года .
^ "Trying Out Wayland With Rebecca Black". Phoronix. Архивировано из оригинала 18 мая 2020 года . Получено 14 января 2020 года .
^ "New Wayland Live CD Has A Lot Of Features". Phoronix. Архивировано из оригинала 18 мая 2020 года . Получено 14 января 2020 года .
^ Басси, Эммануэле (31 января 2011 г.). "АНОНС: Clutter 1.6.0 (стабильная)". clutter-announce (список рассылки). Архивировано из оригинала 10 марта 2016 г. Получено 9 марта 2016 г.
^ Брэдфорд, Роб (16 декабря 2011 г.). "Clutter & Cogl Wayland update". Архивировано из оригинала 10 марта 2016 г. Получено 9 марта 2016 г. Поддержка Clutter на стороне клиента в основном завершена
^ Басси, Эммануэле (24 сентября 2013 г.). "АНОНС: Clutter 1.16.0 (стабильная)". clutter-announce (список рассылки). Архивировано из оригинала 10 марта 2016 г. Получено 9 марта 2016 г.
^ "Wayland – Enlightenment". Архивировано из оригинала 29 марта 2013 года . Получено 6 марта 2013 года .
^ "GTK+ Roadmap" . Получено 8 марта 2016 г. .
^ Лантинга, Сэм (8 марта 2014 г.). "SDL 2.0.2 ВЫШЕЛ!". Проект SDL. Архивировано из оригинала 15 марта 2014 г. Получено 18 марта 2014 г.
^ Ларабель, Майкл (9 января 2016 г.). «SDL 2.0.4 был тихо выпущен на прошлой неделе с Wayland и Mir по умолчанию». Phoronix.com . Архивировано из оригинала 16 марта 2016 г. . Получено 17 апреля 2016 г. .
^ Берглунд, Камилла (8 апреля 2014 г.). "Implementation for Wayland · Issue #106 · glfw/glfw · GitHub". GitHub . Архивировано из оригинала 27 августа 2022 г. . Получено 14 августа 2014 г. .
^ "FreeGLUT: Реализовать начальную поддержку Wayland". GitHub . Архивировано из оригинала 10 ноября 2020 г. Получено 7 апреля 2015 г.
^ "GNOME Initiatives - Wayland". GNOME Wiki . Архивировано из оригинала 7 марта 2016 года . Получено 8 марта 2016 года .
^ "KWin/Wayland". KDE Community Wiki . Архивировано из оригинала 10 марта 2016 года . Получено 8 марта 2016 года .
^ "Enlightenment - Wayland". Enlightenment.org . Архивировано из оригинала 9 марта 2016 года . Получено 8 марта 2016 года .
^ "Enlightenment DR 0.20.0 Release". Enlightenment.org . Архивировано из оригинала 21 июня 2018 года . Получено 8 марта 2016 года .
^ "Просвещение Вэйланда". FOSDEM.org . Архивировано из оригинала 9 марта 2016 года . Получено 8 марта 2016 года .
^ "ReleasePlanning/FeaturesPlans". Проект GNOME. Архивировано из оригинала 31 мая 2015 г. Получено 31 мая 2015 г.
^ "Взгляд на захватывающие возможности/улучшения GNOME 3.22". Phoronix. Архивировано из оригинала 12 августа 2020 г. Получено 14 января 2020 г.
^ "GNOME Lands Mainline NVIDIA Wayland Support Using EGLStreams". Phoronix. Архивировано из оригинала 8 августа 2019 г. Получено 14 января 2020 г.
^ "Plasma's Road to Wayland". 25 июля 2014 г. Архивировано из оригинала 27 июля 2014 г. Получено 25 июля 2014 г.
^ Ларабель, Майкл (14 июня 2013 г.). «KDE 4.11 Beta Released, Works On Wayland». Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. . Получено 17 апреля 2016 г. .
^ Graesslin, Martin (29 июня 2015 г.). "Четыре года спустя". Архивировано из оригинала 31 марта 2016 г. Получено 17 апреля 2016 г.
^ Снеддон, Джоуи (17 сентября 2020 г.). «KDE Plasma 5.20 выглядит как потрясающее обновление». Ого! Ubuntu . Получено 14 июня 2024 г. .
^ Нестор, Мариус (13 октября 2020 г.). «Официально выпущена среда рабочего стола KDE Plasma 5.20. Вот что нового». 9to5Linux . Получено 14 июня 2024 г.
^ Уоллен, Джек (14 февраля 2024 г.). «Первый дистрибутив Linux, предоставляющий чистую среду KDE Plasma 6, уже здесь». ZDNET . Получено 24 марта 2024 г.
^ Шаллер, Кристиан (3 июля 2014 г.). «Wayland in Fedora Update». blogs.gnome.org . Архивировано из оригинала 1 мая 2016 г. . Получено 17 апреля 2016 г. .
^ "VNC® Wayland Developer Preview". 8 июля 2014 г. Архивировано из оригинала 14 июля 2014 г.
^ "RealVNC Wayland developer preview email". freedesktop.org . 9 июля 2014 г. Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ "Maliit Status Update". Posterous. 2 апреля 2013 г. Архивировано из оригинала 17 мая 2013 г. Получено 14 октября 2013 г.
^ "More Maliit Keyboard Improvements: QtQuick2". Блог Мюррея. 2 апреля 2013 г. Архивировано из оригинала 13 октября 2013 г. Получено 14 октября 2013 г.
^ "Maliit under Wayland". Архивировано из оригинала 11 июня 2013 года . Получено 14 сентября 2013 года .
^ "wlterm". Freedesktop.org. Архивировано из оригинала 14 июля 2014 г. Получено 8 июля 2014 г.
^ ab Hillesley, стр. 3.
^ "Eclipse теперь работает на Wayland". 18 августа 2014 г. Архивировано из оригинала 23 августа 2014 г. Получено 17 сентября 2014 г.
↑ Стоун, Дэниел (16 февраля 2016 г.). «Спецификация Vulkan 1.0 выпущена с поддержкой Wayland с первого дня». Архивировано из оригинала 24 июня 2016 г. Получено 27 февраля 2016 г.
^ "Wayland Backend DRM | IVI Layer Management". Альянс GENIVI. Архивировано из оригинала 1 февраля 2014 года . Получено 15 июля 2013 года .
^ "Первый смартфон Jolla работает с Wayland". LinuxG.net. 14 июля 2013 г. Архивировано из оригинала 28 июня 2014 г. Получено 8 октября 2013 г.
^ VDVsx [@VDVsx] (13 июля 2013 г.). "Схема основных компонентов #sailfishos. #Qt5 #Wayland #JollaHQ #Akademy" ( Твит ) – через Twitter .
^ Jolla [@JollaHQ] (13 июля 2013 г.). «@faenil @PeppeLaKappa @VDVsx наша первая Jolla будет поставляться с Wayland, да» ( Твит ) – через Twitter .
^ "IVI/IVI Setup". Tizen Wiki. Архивировано из оригинала 10 февраля 2017 года . Получено 8 апреля 2013 года .
^ VanCutsem, Geoffroy (10 июля 2013 г.). "[IVI] Tizen IVI 3.0-M1 выпущен". IVI (список рассылки). Архивировано из оригинала 2 октября 2013 г. Получено 13 июля 2013 г.
^ Амадео, Рон (12 мая 2017 г.). «Samsung Z4 — новый флагманский смартфон Tizen». Ars Technica . Архивировано из оригинала 13 мая 2017 г. Получено 13 мая 2017 г.
^ Høgsberg, Kristian (3 ноября 2008 г.). «Преждевременная огласка лучше, чем никакой». Архивировано из оригинала 28 марта 2016 г. Получено 6 апреля 2016 г.
^ "Интервью: Кристиан Хёгсберг". Архив FOSDEM . 29 января 2012 г. Архивировано из оригинала 4 марта 2016 г. Получено 8 марта 2016 г.
^ ab Hillesley, Richard (13 февраля 2012 г.). "Wayland - Beyond X". The H Open . Heise Media UK. Архивировано из оригинала 6 декабря 2013 г. Получено 8 марта 2016 г.
^ Хегсберг, Кристиан. «Wayland – новый дисплейный сервер для Linux». Linux Plumbers Conference, 2009. Архивировано из оригинала 11 августа 2017 г.
^ Дженкинс, Эван (22 марта 2011 г.). «Графический стек Linux от X до Wayland». Ars Technica . Архивировано из оригинала 10 апреля 2016 г. Получено 17 апреля 2016 г.
^ Ларабель, Майкл (29 октября 2010 г.). «Wayland становится проектом FreeDesktop.org». Phoronix.com . Архивировано из оригинала 14 апреля 2016 г. Получено 17 апреля 2016 г.
^ Høgsberg, Kristian (29 октября 2010 г.). «Переход на freedesktop.org». Архивировано из оригинала 9 ноября 2012 г. Получено 31 июля 2013 г.
^ Høgsberg, Kristian (3 декабря 2008 г.). «Wayland теперь находится под лицензией MIT». wayland-display-server (список рассылки). Архивировано из оригинала 9 ноября 2012 г. Получено 8 марта 2016 г.
^ Høgsberg, Kristian (22 ноября 2010 г.). "Wayland license cleification". wayland-devel (список рассылки). Архивировано из оригинала 9 марта 2016 г. Получено 8 марта 2016 г.
^ Høgsberg, Kristian (19 сентября 2011 г.). "License update". wayland-devel (Mailing list). Архивировано из оригинала 29 апреля 2016 г. Получено 8 марта 2016 г.
^ Мунк, Карстен (11 апреля 2013 г.). «Wayland, использующий драйверы Android GPU в системах на базе glibc, часть 1». Проект Mer. Архивировано из оригинала 19 апреля 2013 г. Получено 3 июля 2013 г.
^ Мунк, Карстен (8 июня 2013 г.). «Wayland, использующий драйверы Android GPU в системах на базе glibc, часть 2». Проект Mer. Архивировано из оригинала 24 октября 2013 г. Получено 3 июля 2013 г.
^ Ларабель, Майкл (11 апреля 2013 г.). «Jolla выводит Wayland на новый уровень с драйверами графических процессоров Android». Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. Получено 17 апреля 2016 г.
^ "Wayland". Wayland.freedesktop.org. Архивировано из оригинала 7 июля 2013 года . Получено 15 июля 2013 года .
^ Høgsberg, Kristian (9 февраля 2012 г.). "[АНОНС] Wayland и Weston 0.85.0 выпущены". Список рассылки wayland-devel . Архивировано из оригинала 14 января 2020 г. Получено 14 января 2020 г.
^ Høgsberg, Kristian (24 июля 2012 г.). «Wayland and Weston 0.95.0 released». Список рассылки wayland-devel . Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ Høgsberg, Kristian (22 октября 2012 г.). «Wayland and Weston 1.0». Список рассылки wayland-devel . Архивировано из оригинала 23 августа 2019 г. Получено 14 января 2020 г.
^ Шершель, Фабиан (23 октября 2012 г.). «Wayland’s 1.0 milestone fixes graphics protocol». The H Open . Heise Media UK. Архивировано из оригинала 7 декабря 2013 г. Получено 17 апреля 2016 г.
^ Ларабель, Майкл (16 апреля 2013 г.). «Wayland 1.1 официально выпущен с Weston 1.1». Phoronix.com . Архивировано из оригинала 25 апреля 2016 г. . Получено 17 апреля 2016 г. .
^ Høgsberg, Kristian (15 апреля 2013 г.). "1.1 Released". Список рассылки wayland-devel . Архивировано из оригинала 27 мая 2019 г. Получено 14 января 2020 г.
^ Ларабель, Майкл (13 июля 2013 г.). «Wayland 1.2.0 Released, Joined By Weston Compositor». Phoronix.com . Архивировано из оригинала 14 апреля 2016 г. . Получено 17 апреля 2016 г. .
^ Høgsberg, Kristian (12 июля 2013 г.). «Wayland and Weston 1.2.0 released». Список рассылки wayland-devel . Архивировано из оригинала 25 июня 2019 г. Получено 14 января 2020 г.
^ Høgsberg, Kristian (11 октября 2013 г.). «Wayland и Weston 1.3 releases are out». Список рассылки wayland-devel . Архивировано из оригинала 8 августа 2020 г. Получено 11 апреля 2020 г.
^ Paalanen, Pekka (19 сентября 2014 г.). "Wayland and Weston 1.6.0 released". Список рассылки wayland-devel . Архивировано из оригинала 27 мая 2019 г. Получено 14 января 2020 г.
^ Харрингтон, Брайс (14 февраля 2015 г.). "[АНОНС] wayland 1.7.0". Список рассылки wayland-devel . Архивировано из оригинала 5 апреля 2020 г. Получено 14 января 2020 г.
^ Харрингтон, Брайс (14 февраля 2015 г.). "[АНОНС] weston 1.7.0". Список рассылки wayland-devel . Архивировано из оригинала 5 апреля 2020 г. Получено 14 января 2020 г.
^ Харрингтон, Брайс (2 июня 2015 г.). "[АНОНС] wayland 1.8.0". Список рассылки wayland-devel . Архивировано из оригинала 15 августа 2020 г. Получено 14 января 2020 г.
^ Харрингтон, Брайс (2 июня 2015 г.). "[АНОНС] weston 1.8.0". Список рассылки wayland-devel . Архивировано из оригинала 15 августа 2020 г. Получено 14 января 2020 г.
^ Харрингтон, Брайс (21 сентября 2015 г.). "[АНОНС] wayland 1.9.0". wayland-devel (список рассылки). Архивировано из оригинала 25 октября 2020 г. Получено 14 января 2020 г.
^ Харрингтон, Брайс (21 сентября 2015 г.). "[АНОНС] weston 1.9.0". wayland-devel (список рассылки). Архивировано из оригинала 21 сентября 2020 г. Получено 14 января 2020 г.
^ "[АНОНС] wayland-protocols 1.0". 25 ноября 2015 г.
^ Харрингтон, Брайс (17 февраля 2016 г.). "[АНОНС] wayland 1.10.0". wayland-devel (список рассылки). Архивировано из оригинала 17 февраля 2016 г. Получено 17 февраля 2016 г.
^ Харрингтон, Брайс (17 февраля 2016 г.). "[АНОНС] weston 1.10.0". wayland-devel (список рассылки). Архивировано из оригинала 24 февраля 2016 г. Получено 17 февраля 2016 г.
^ Нестор, Мариус (18 февраля 2016 г.). «Wayland 1.10 Display Server Officially Released, Wayland 1.11 Arrives in May 2016». Softpedia . Архивировано из оригинала 14 января 2020 г. . Получено 14 января 2020 г. .
^ Ларабель, Майкл (16 февраля 2016 г.). «Wayland 1.10 Officially Released». Phoronix.com . Архивировано из оригинала 21 июня 2017 г. . Получено 17 апреля 2016 г. .
^ "[АНОНС] wayland-protocols 1.1". 16 февраля 2016 г.
^ "[АНОНС] wayland-protocols 1.4". 23 мая 2016 г.
^ Харрингтон, Брайс (1 июня 2016 г.). "[АНОНС] wayland 1.11.0". wayland-devel (список рассылки). Архивировано из оригинала 1 июня 2016 г. Получено 1 июня 2016 г.
^ Харрингтон, Брайс (1 июня 2016 г.). "[АНОНС] weston 1.11.0". wayland-devel (список рассылки). Архивировано из оригинала 8 октября 2016 г. Получено 1 июня 2016 г.
^ "[АНОНС] wayland-protocols 1.5". 22 июля 2016 г.
^ "[АНОНС] wayland-protocols 1.7". 15 августа 2016 г.
^ Харрингтон, Брайс (21 сентября 2016 г.). "[АНОНС] wayland 1.12.0". wayland-devel (список рассылки). Архивировано из оригинала 2 апреля 2017 г. Получено 21 сентября 2016 г.
^ Харрингтон, Брайс (21 сентября 2016 г.). "[АНОНС] weston 1.12.0". wayland-devel (список рассылки). Архивировано из оригинала 8 октября 2016 г. Получено 21 сентября 2016 г.
^ Харрингтон, Брайс (21 февраля 2017 г.). "[АНОНС] wayland 1.13.0". wayland-devel (список рассылки). Архивировано из оригинала 24 февраля 2017 г. Получено 30 апреля 2017 г.
^ Харрингтон, Брайс (25 февраля 2017 г.). "[АНОНС] weston 2.0.0". wayland-devel (список рассылки). Архивировано из оригинала 2 марта 2017 г. Получено 30 апреля 2017 г.
^ "[АНОНС] wayland-protocols 1.10". 31 июля 2017 г.
^ Харрингтон, Брайс (8 августа 2017 г.). "[АНОНС] wayland 1.14.0". wayland-devel (список рассылки). Архивировано из оригинала 20 октября 2018 г. Получено 25 марта 2018 г.
^ Харрингтон, Брайс (8 августа 2017 г.). "[АНОНС] weston 3.0.0". wayland-devel (список рассылки). Архивировано из оригинала 20 октября 2018 г. Получено 25 марта 2018 г.
^ "[АНОНС] wayland-protocols 1.11". 11 октября 2017 г.
^ "[АНОНС] wayland-protocols 1.13". 14 февраля 2018 г.
↑ Форман, Дерек (9 апреля 2018 г.). "[АНОНС] wayland 1.15.0". wayland-devel (список рассылки). Архивировано из оригинала 10 апреля 2018 г. Получено 15 апреля 2018 г.
↑ Форман, Дерек (9 апреля 2018 г.). "[АНОНС] weston 4.0.0". wayland-devel (список рассылки). Архивировано из оригинала 10 апреля 2018 г. Получено 15 апреля 2018 г.
^ "[АНОНС] wayland-protocols 1.14". 7 мая 2018 г.
^ "[АНОНС] wayland-protocols 1.16". 30 июля 2018 г.
↑ Форман, Дерек (24 августа 2018 г.). "[АНОНС] wayland 1.16.0". wayland-devel (список рассылки). Архивировано из оригинала 28 августа 2018 г. Получено 30 ноября 2018 г.
↑ Форман, Дерек (24 августа 2018 г.). "[АНОНС] weston 5.0.0". wayland-devel (список рассылки). Архивировано из оригинала 25 августа 2018 г. Получено 30 ноября 2018 г.
^ "[АНОНС] wayland-protocols 1.17". 12 ноября 2018 г.
^ Форман, Дерек (28 марта 2019 г.). "[АНОНС] wayland 1.17.0" (список рассылки). Архивировано из оригинала 25 марта 2019 г. . Получено 17 июня 2019 г. .
^ Форман, Дерек (21 марта 2019 г.). "[АННОНС] weston 6.0.0" (список рассылки). Архивировано из оригинала 31 марта 2019 г. . Получено 17 июня 2019 г. .
^ "[АНОНС] wayland-protocols 1.18". 25 июля 2019 г.
^ Ser, Simon (11 февраля 2020 г.). "[ANNOUNCE] wayland 1.18" (список рассылки). Архивировано из оригинала 1 апреля 2021 г. Получено 12 февраля 2020 г.
^ Ser, Simon (23 августа 2019 г.). "[ANNOUNCE] weston 7.0.0" (список рассылки). Архивировано из оригинала 25 августа 2019 г. . Получено 22 октября 2019 г. .
^ Ser, Simon (24 января 2020 г.). "[АНОНС] weston 8.0.0" (список рассылки) . Получено 12 февраля 2020 г.
^ "[АНОНС] weston 9.0.0". 4 сентября 2020 г. Архивировано из оригинала 29 сентября 2020 г. Получено 30 октября 2020 г.
^ "[АНОНС] wayland-protocols 1.19". 29 февраля 2020 г.
^ "[АНОНС] wayland-protocols 1.20". 29 февраля 2020 г.
^ Ser, Simon (27 января 2021 г.). "[ANNOUNCE] wayland 1.19.0" (список рассылки). Архивировано из оригинала 1 февраля 2021 г. . Получено 27 января 2021 г. .
^ "[АНОНС] wayland-protocols 1.21". 30 апреля 2021 г.
^ "[АНОНС] wayland-protocols 1.24". 23 ноября 2021 г.
^ Ser, Simon (27 января 2021 г.). "[ANNOUNCE] wayland 1.20.0" (список рассылки). Архивировано из оригинала 11 декабря 2021 г. . Получено 27 января 2021 г. .
^ Ser, Simon (1 февраля 2022 г.). "[ANNOUNCE] weston 10.0.0" (список рассылки). Архивировано из оригинала 4 февраля 2022 г. . Получено 12 февраля 2022 г. .
^ "[АНОНС] weston 10.0.5". 2 августа 2023 г.
^ "[АНОНС] wayland-protocols 1.25". 28 января 2022 г.
^ "[АНОНС] wayland 1.21.0". 30 июня 2022 г.
^ "[АНОНС] weston 11.0.0". 22 сентября 2022 г.
^ "[АНОНС] weston 11.0.3". 2 августа 2023 г.
^ "[АНОНС] wayland-protocols 1.26". 7 июля 2022 г.
^ "[АНОНС] wayland-protocols 1.31". 29 ноября 2022 г.
↑ Ser, Simon (4 апреля 2023 г.). "[АНОНС] wayland 1.22.0" (список рассылки) . Получено 9 апреля 2023 г.
^ "[АНОНС] weston 12.0.0". 17 мая 2023 г.
^ "[АНОНС] Weston 12.0.4". 23 апреля 2024 г.
^ "[АНОНС] weston 13.0.0". 28 ноября 2023 г.
^ "[АНОНС] weston 13.0.3". 5 июня 2024 г.
^ "[АНОНС] wayland-protocols 1.32". 3 июля 2023 г.
^ "[АНОНС] wayland-protocols 1.36". 26 апреля 2024 г.