Jump to content

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

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

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

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

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

[ редактировать ]

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

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

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

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

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

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

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

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

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

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

Одним из примеров сервера отображения является 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 logo

Серверы отображения, реализующие протокол сервера отображения 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-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. (GBM) от Mesa Gralloc конкурирует с другими решениями, такими как, например, Generic Buffer Management или 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) . Хьюлетт Паккард. Апрель 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 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: f7a1d5189c0f4a6f1f118ce1e9e8e78a__1717850880
URL1:https://arc.ask3.ru/arc/aa/f7/8a/f7a1d5189c0f4a6f1f118ce1e9e8e78a.html
Заголовок, (Title) документа по адресу, URL1:
Windowing system - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)