Сервер отображения

редактировать
Основные компоненты GUI : Сервер отображения реализует оконная система. Простой оконный менеджер просто рисует декорации окна, но составные оконные менеджеры делают больше.

A дисплейный сервер или оконный сервер - это программа, чья Основная задача - координировать ввод и вывод клиентов от остальной части операционной системы, оборудования и друг друга. Сервер отображения взаимодействует со своими клиентами по протоколу сервера отображения, протоколу связи, который может быть прозрачным для сети или просто совместимым с сетью.

Сервер отображения является ключевым компонентом любого графического пользовательского интерфейса, в частности, оконной системы.

Содержание
  • 1 Доступные протоколы связи с сервером отображения
    • 1.1 X11
    • 1.2 Wayland
    • 1.3 Mir
    • 1.4 SurfaceFlinger
    • 1.5 Quartz Compositor
    • 1.6 Диспетчер окон рабочего стола
  • 2 См. Также
  • 3 Ссылки
Доступные протоколы связи с сервером дисплея

X11

Сервер X.Org обменивается данными со своими клиентами, например Amarok, по протоколу X11 Логотип системы X Window

Одним из примеров сервера отображения является X.Org Server, который работает поверх ядра (обычно Unix ядро, такое как Linux или BSD ). Он получает данные, вводимые пользователем (например, от evdev в Linux), и передает их одному из своих клиентов. Сервер отображения также получает данные от своих клиентов; он обрабатывает данные, выполняет компоновку и передает данные в один из трех компонентов ядра - DRM, gem или драйвер KMS. Компонент записывает данные в буфер кадра , и содержимое буфера кадра передается на подключенный экран и отображается. X полагается на GLX.

Одной из реализаций концепции сервера отображения является X Window System, в частности, ее фактически используемая версия - X.Org Server и Клиентские библиотеки Xlib и XCB. Сервер X.Org является сервером отображения, но в своей текущей реализации он полагается на вторую программу, оконный менеджер композитинга, для выполнения композитинга. Примеры: Mutter или KWin.

Известными примерами экранных серверов, реализующих протокол сервера отображения X11, являются X.Org Server, XFree86, XQuartz и Cygwin / X, а клиентские библиотеки, реализующие протокол сервера отображения X11, - это Xlib и XCB.

Wayland

Протокол сервера отображения Wayland. Логотип Wayland

Серверы отображения, реализующие протокол сервера отображения Wayland, называются композиторами Wayland. Как и любой сервер отображения, композитор Wayland отвечает за обработку ввода и вывода для своих клиентов и - в отличие от X11 - дополнительно за композитинг . Примеры: Weston, Mutter, KWin или Enlightenment.

Композиторы Wayland обмениваются данными с клиентами Wayland по протоколу сервера отображения Wayland. Этот протокол определяет, что клиенты могут напрямую записывать данные в буфер кадра, используя EGL API рендеринга. Сервер отображения по-прежнему решает, какое окно находится наверху и, таким образом, видно пользователю, а также по-прежнему отвечает за передачу данных, касающихся устройств ввода, от evdev своим клиентам.

Wayland в определенной степени используется в некоторых дистрибутивах Linux для настольных ПК, таких как Fedora. Он также хорошо подходит для мобильных компьютеров и был принят, например, в проектах, ориентированных на смартфоны и планшеты Tizen, Sailfish OS и AsteroidOS.

. реализация Wayland доступна по лицензии MIT License, библиотекам и libwayland-server.

Постоянно прилагаются усилия по добавлению поддержки Wayland в Chrome OS.

Mir

Сервер отображения Mir поставляется с собственным протоколом сервера отображения Mir, который отличается от используемых в X11 и Wayland. «Мир» дополнительно поддерживает протокол X11. Он был разработан Canonical и должен был стать предпочтительным сервером отображения для Ubuntu. С 2017 года он был заменен сервером отображения Wayland для настольных версий Ubuntu.

Существуют реализации сервера отображения Mir, libmir-server и libmir-client библиотеки, доступные по GPLv3.

SurfaceFlinger

Google разработали сервер отображения под названием SurfaceFlinger для Android (еще одна операционная система на основе ядра Linux, предназначенная главным образом для мобильных устройств):

Все в Android отображается «на поверхности»; «поверхности» создаются приложениями и помещаются в очередь, управляемую SurfaceFlinger.

Еще одно решение для Android - «Gralloc». Gralloc обрабатывает память устройства, то есть выполняет распределение, арбитраж и синхронизацию с помощью файловых дескрипторов (FD) Android / Linux. Gralloc конкурирует с другими решениями, такими как, например, Generic Buffer Management (GBM) Mesa или EGLStreams от Nvidia. Уровень аппаратной абстракции gralloc (HAL) используется для выделения буферов, лежащих в основе «поверхностей».

Для компоновки в Android поверхности отправляются в SurfaceFlinger, который использует OpenGL ES для компоновки.

Hardware Composer HAL (HWC) был представлен в Android 3.0 и с годами постоянно развивался. Его основная цель - определить наиболее эффективный способ составления буферов с помощью доступного оборудования. Как HAL, его реализация зависит от устройства и обычно выполняется изготовителем оборудования дисплея.

Quartz Compositor

Для семейства операционных систем Apple macOS Quartz Compositor выполняет задачи сервера отображения и диспетчера окон в оконная система.

Диспетчер окон рабочего стола

Для Microsoft Windows, начиная с Windows Vista и далее, Диспетчер окон рабочего стола позволяет использовать аппаратного ускорения для отображения графического пользовательского интерфейса. Первоначально он был создан для того, чтобы включить части нового пользовательского интерфейса «Windows Aero», который позволял использовать такие эффекты, как прозрачность, переключение 3D-окон и многое другое. Он также входит в состав Windows Server 2008, но требует установки функции «Desktop Experience» и совместимых графических драйверов.

См. Также
Ссылки
Последняя правка сделана 2021-05-17 09:05:38
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте