Оконная система
Эта статья нуждается в дополнительных цитатах для проверки . ( декабрь 2019 г. ) |
В вычислительной технике ( оконная система или оконная система ) — это пакет программного обеспечения, который управляет отдельно различными частями экранов дисплея . [1] Это тип графического пользовательского интерфейса (GUI), который реализует парадигму WIMP ( окна , значки , меню , указатель ) для пользовательского интерфейса .
Каждому запущенному в данный момент приложению назначается обычно прямоугольная поверхность дисплея с изменяемым размером, чтобы представить пользователю его графический интерфейс; эти окна могут перекрывать друг друга, в отличие от мозаичного интерфейса , в котором им не разрешено перекрываться. Обычно оконный декор вокруг каждого окна рисуют . Программирование как оформления окна, так и доступных виджетов внутри окна, которые представляют собой графические элементы для непосредственного взаимодействия с пользователем, такие как ползунки, кнопки и т. д., облегчается и упрощается за счет использования наборов инструментов виджетов .
Технические детали
[ редактировать ]Основной компонент любой оконной системы обычно называют сервером отображения , хотя также используются альтернативные названия, такие как оконный сервер или наборщик. Любое приложение, которое запускается и отображает свой графический интерфейс в окне, является клиентом сервера отображения. Сервер дисплея и его клиенты взаимодействуют друг с другом через интерфейс прикладного программирования (API) или протокол связи , который обычно называется протоколом сервера дисплея, причем сервер дисплея является посредником между клиентами и пользователем. Он получает все входные данные от ядра , которые ядро получает от всех подключенных устройств ввода , таких как клавиатура , указывающие устройства или сенсорный экран , и передает их нужному клиенту. Сервер отображения также отвечает за вывод клиентов на монитор компьютера . Вывод звука обычно не управляется сервером отображения, но громкость звука обычно регулируется с помощью апплетов с графическим интерфейсом, и именно сервер отображения решает, какие приложения находятся на первом месте. Оконная система позволяет пользователю компьютера работать с несколькими программами одновременно. Каждая программа представляет свой графический интерфейс в отдельном окне, которое обычно представляет собой прямоугольную область экрана. [ нужна ссылка ]
С точки зрения программиста , оконная система реализует графические примитивы. Например: рендеринг шрифтов или рисование линии на экране. Он предоставляет абстракцию графического оборудования для использования элементами графического интерфейса более высокого уровня, такими как оконный менеджер. [ нужна ссылка ]
Протокол дисплея-сервера может быть совместимым с сетью или даже прозрачным для сети , что облегчает внедрение тонких клиентов . [ нужна ссылка ]
Дисплей-сервер
[ редактировать ]Сервер отображения или оконный сервер — это программа, основной задачей которой является координация ввода и вывода своих клиентов в остальную часть операционной системы, оборудования и друг друга и обратно. Сервер дисплея взаимодействует со своими клиентами по протоколу сервера дисплея, протоколу связи , который может быть прозрачным для сети или просто поддерживать работу в сети.
Сервер отображения является ключевым компонентом любого графического пользовательского интерфейса , особенно оконной системы.
Отношения сервер/клиент в автономном дисплейном сервере несколько нелогичны, поскольку «сервер» обычно рассматривается как большая удаленная машина, тогда как автономный «дисплейный сервер» представляет собой небольшую локальную систему, в которой большинство клиентов выполняются на более крупная центральная машина. Объяснение заключается в том, что сервер отображения предоставляет услуги дисплея и устройств ввода.
Протоколы связи с сервером отображения
[ редактировать ]Х11
[ редактировать ]Одним из примеров сервера отображения является 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 отвечает за обработку ввода и вывода для своих клиентов, а , в отличие от 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-подобных операционных систем
[ редактировать ]- 8½ и Рио для Плана 9
- fbui (с модифицированным ядром Linux)
- HP Windows/9000 (в ранних версиях HP-UX ) [6]
- CMU Эндрю Менеджер окон [7]
- Сапфир [8] для PERQ
- Уайтчепел Ориэл [9]
- Кремниевая графика MEX
- МЕНЕДЖЕР (MGR)
- Метисс
- Мне
- Новости / OpenWindows
- NeXT ДПС
- Орбитальный ( окислительно-восстановительный )
- Qt расширенный
- Кварцевый композитор ( macOS )
- СанВью
- Твин (текстовые окна)
- W оконная система
- Вейланд
- X оконная система
- XFast
- Ксинт
Для семейства Windows NT операционных систем
[ редактировать ]- Диспетчер окон рабочего стола (DWM) в Microsoft Windows ( Vista и более поздние версии)
- РеактОС Проводник
- Классическая ракушка
- Покки
- РетроUI
Веб- оконные системы
[ редактировать ]- Додзё
- ExtJS
- TIBCO Общий интерфейс
- Веб-диспетчер окон
Другой
[ редактировать ]- ДМ
- драгоценный камень
- Интуиция
- Микроокна
- Миниграфический интерфейс
- ОХГ
- Зрение
- VWS (программное обеспечение рабочей станции VAX)
- mpx/mux (для терминала Bell Labs Blit )
- Символика Динамические окна
Некоторые системы, такие как Microsoft Windows ( XP , 9x и более ранние версии), классическая Mac OS (версия 9 и более ранние) и Palm OS , содержат оконную систему, интегрированную с ОС. [ нужна ссылка ]
См. также
[ редактировать ]- Список серверов отображения
- История графического интерфейса пользователя
- Набор инструментов для виджетов
- Среда рабочего стола
Ссылки
[ редактировать ]- ^ Кент, Аллен; Уильямс, Джеймс Г. (11 октября 1996 г.). Энциклопедия микрокомпьютеров: Том 19 - Системы поддержания истины для качества визуального отображения . ЦРК Пресс. п. 227. ИСБН 9780824727178 . Проверено 8 июня 2017 г.
- ^ «Обзор озона» . Проверено 20 августа 2017 г.
- ^ «Архитектура системы Android» (PDF) . Архивировано из оригинала (PDF) 8 апреля 2016 г.
- ^ «Разработчик Android: Surface» .
- ^ «Разработчик Android: SurfaceFlinger и Hardware Composer» .
- ^ «Руководство пользователя HP Windows/9000» (PDF) . Хьюлетт Паккард. Апрель 1988 года . Проверено 26 октября 2021 г.
- ^ «Эндрю: Распределенная среда персональных вычислений» (PDF) . Коммуникации АКМ . 29 (3). Март 1986 года.
- ^ Майерс, Брэд (декабрь 1984 г.). «Пользовательский интерфейс Sapphire» (PDF) . IEEE Компьютерная графика и приложения . 4 (12): 13–23. дои : 10.1109/MCG.1984.6429376 . S2CID 11138733 .
- ^ «Чилтон::INF::Управление окнами» . www.chilton-computing.org.uk . Проверено 11 апреля 2023 г.