Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Типовые элементы окна . Оформление окна рисуется либо диспетчером окон, либо клиентом. Отрисовка контента - задача клиента.

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

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

Технические детали [ править ]

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

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

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

Сервер отображения [ править ]

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

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

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

Показать протоколы связи с сервером [ править ]

X11 [ править ]

Сервер X.Org связывается со своими клиентами, например, Amarok , по протоколу X11.

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

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

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

Wayland [ править ]

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

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

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

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

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

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

Мир [ править ]

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

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

SurfaceFlinger [ править ]

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

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

Еще одно решение для 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, его реализация зависит от устройства и обычно выполняется изготовителем оборудования дисплея.

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

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

Диспетчер окон рабочего стола [ править ]

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

Список оконных систем [ править ]

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

  • 8½ и рио для Plan 9
  • FramebufferUI (fbui) оконная система в ядре
  • HP Windows
  • Сапфир [6] для PERQ
  • МАНАГЕР (MGR)
  • Metisse
  • Мир
  • NeWS / OpenWindows
  • NeXT DPS
  • Орбитальный ( окислительно-восстановительный )
  • Qt Extended
  • Кварцевый композитор ( Mac OS X )
  • SunView
  • Twin (текстовые окна)
  • W оконная система
  • Wayland
  • X Window System
  • XFast
  • Xynth

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

  • Диспетчер окон рабочего стола (DWM) в Microsoft Windows ( Vista и более поздние версии )
  • ReactOS Explorer
  • Классическая ракушка
  • Покки
  • RetroUI
  • Талисман Настольный

Веб- оконные системы [ править ]

  • Додзё
  • ExtJS
  • Общий интерфейс TIBCO
  • Веб-оконный менеджер

Другое [ править ]

  • DM
  • ДРАГОЦЕННЫЙ КАМЕНЬ
  • OPIE
  • Интуиция
  • Микроокна
  • MiniGUI
  • OOHG
  • Зрение
  • Программное обеспечение VAX Workstation

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

См. Также [ править ]

  • Список серверов отображения
  • История графического пользовательского интерфейса
  • Набор инструментов для виджетов
  • Окружение рабочего стола

Ссылки [ править ]

  1. ^ Кент, Аллен; Уильямс, Джеймс Г. (1996-10-11). Энциклопедия микрокомпьютеров: Том 19 - Истинные системы поддержания качества визуального отображения . CRC Press. п. 227. ISBN. 9780824727178. Проверено 8 июня +2017 .
  2. ^ «Обзор озона» . Проверено 20 августа 2017 .
  3. ^ «Архитектура системы Android» (PDF) . Архивировано из оригинального (PDF) 8 апреля 2016 года.
  4. ^ «Разработчик Android: Surface» .
  5. ^ «Разработчик Android: SurfaceFlinger и Hardware Composer» .
  6. Майерс, Брэд (декабрь 1984 г.). «Пользовательский интерфейс для Sapphire» (PDF) . Компьютерная графика и приложения IEEE . 4 (12): 13–23. DOI : 10,1109 / MCG.1984.6429376 .