stringtranslate.com

Оконная система

Типовые элементы окна . Оформление окна рисуется оконным менеджером или клиентом. Отрисовка контента – задача клиента.

В вычислительной технике оконная система ( или оконная система ) — это пакет программного обеспечения, который управляет отдельно различными частями экранов дисплея . [1] Это тип графического пользовательского интерфейса (GUI), который реализует парадигму WIMP ( окна , значки , меню , указатель ) для пользовательского интерфейса .

Каждому запущенному в данный момент приложению назначается обычно прямоугольная поверхность дисплея с изменяемым размером, чтобы представить пользователю его графический интерфейс; эти окна могут перекрывать друг друга, в отличие от мозаичного интерфейса , в котором им не разрешено перекрываться. Обычно вокруг каждого окна рисуют оконный декор . Программирование как оформления окна, так и доступных виджетов внутри окна, которые представляют собой графические элементы для непосредственного взаимодействия с пользователем, такие как ползунки, кнопки и т. д., облегчается и упрощается за счет использования наборов инструментов виджетов .

Технические детали

Основной компонент любой оконной системы обычно называют сервером отображения , хотя также используются альтернативные названия, такие как оконный сервер или наборщик. Любое приложение, которое запускается и отображает свой графический интерфейс в окне, является клиентом сервера отображения. Сервер дисплея и его клиенты взаимодействуют друг с другом через интерфейс прикладного программирования (API) или протокол связи , который обычно называется протоколом сервера дисплея, причем сервер дисплея является посредником между клиентами и пользователем. Он получает все входные данные от ядра , которые ядро ​​получает от всех подключенных устройств ввода , таких как клавиатура , указывающие устройства или сенсорный экран , и передает их нужному клиенту. Сервер отображения также отвечает за вывод клиентов на монитор компьютера . Вывод звука обычно не управляется сервером отображения, но громкость звука обычно регулируется с помощью апплетов с графическим интерфейсом, и именно сервер отображения решает, какие приложения находятся на первом месте. Оконная система позволяет пользователю компьютера работать с несколькими программами одновременно. Каждая программа представляет свой графический интерфейс в отдельном окне, которое обычно представляет собой прямоугольную область экрана. [ нужна цитата ]

С точки зрения программиста, оконная система реализует графические примитивы . Например: рендеринг шрифтов или рисование линии на экране. Он предоставляет абстракцию графического оборудования для использования элементами графического интерфейса более высокого уровня, такими как оконный менеджер. [ нужна цитата ]

Протокол дисплея-сервера может быть совместимым с сетью или даже прозрачным для сети , что облегчает внедрение тонких клиентов . [ нужна цитата ]

Дисплей-сервер

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

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

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

Отношения сервер/клиент в автономном сервере отображения несколько нелогичны, поскольку «сервер» обычно рассматривается как большая удаленная машина, тогда как автономный «сервер отображения» представляет собой небольшую локальную систему, в которой большинство клиентов выполняются на более крупная центральная машина. Объяснение заключается в том, что сервер отображения предоставляет услуги дисплея и устройств ввода.

Протоколы связи с сервером отображения

Х11

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

Одним из примеров сервера отображения является X.Org Server , который работает поверх ядра (обычно Unix -подобного ядра, такого как Linux или BSD ). Он получает входные данные пользователя (например, от evdev в Linux) и передает их одному из своих клиентов. Сервер отображения также получает данные от своих клиентов; он обрабатывает данные, выполняет композицию и в Linux передает данные одному из трех компонентов ядра — DRM , драгоценному камню или драйверу 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 отвечает за обработку ввода и вывода для своих клиентов и, в отличие от X11, дополнительно за композицию . Примеры: Weston , Mutter , KWin или Enlightenment .

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

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

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

В настоящее время предпринимаются усилия по добавлению поддержки Wayland в ChromeOS . [2]

Мир

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

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

Оконные системы с API

ПоверхностьФлингер

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

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

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

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

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

Кварцевый композитор

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

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

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

Список оконных систем

Для Unix-подобных операционных систем

Для операционных систем семейства Windows NT

Веб- оконные системы

Другой

Некоторые системы, такие как Microsoft Windows ( XP , 9x и более ранние версии), классическая Mac OS (версия 9 и более ранние) и Palm OS , содержат оконную систему, интегрированную с ОС. [ нужна цитата ]

Смотрите также

Рекомендации

  1. ^ Кент, Аллен; Уильямс, Джеймс Г. (11 октября 1996 г.). Энциклопедия микрокомпьютеров: Том 19 - Системы поддержания истины для качества визуального отображения. ЦРК Пресс. п. 227. ИСБН 9780824727178. Проверено 8 июня 2017 г.
  2. ^ «Обзор озона» . Проверено 20 августа 2017 г.
  3. ^ «Архитектура системы Android» (PDF) . Архивировано из оригинала (PDF) 8 апреля 2016 г.
  4. ^ «Разработчик Android: Surface» .
  5. ^ «Разработчик Android: SurfaceFlinger и Hardware Composer» .
  6. ^ «Руководство пользователя HP Windows/9000» (PDF) . Hewlett Packard. Апрель 1988 года . Проверено 26 октября 2021 г.
  7. ^ «Эндрю: Распределенная среда персональных вычислений» (PDF) . Коммуникации АКМ . 29 (3). Март 1986 года.
  8. ^ Майерс, Брэд (декабрь 1984 г.). «Пользовательский интерфейс Sapphire» (PDF) . IEEE Компьютерная графика и приложения . 4 (12): 13–23. дои : 10.1109/MCG.1984.6429376. S2CID  11138733.
  9. ^ «Чилтон::INF::Управление окнами» . www.chilton-computing.org.uk . Проверено 11 апреля 2023 г.