Введение

Тип системного программного обеспечения

Оконный менеджер — это системное программное обеспечение, которое управляет размещением и внешним видом окон в оконной системе графического пользовательского интерфейса. Большинство оконных менеджеров предназначены для обеспечения среды рабочего стола. Они работают совместно с базовой графической системой, которая предоставляет необходимую функциональность — поддержку графического оборудования, устройств указания и клавиатуры, — и часто разрабатываются и создаются с использованием набора инструментов виджетов. Лишь немногие оконные менеджеры имеют чёткое разграничение между оконной системой и оконным менеджером. Любой графический пользовательский интерфейс, основанный на метафоре окон, включает в себя ту или иную форму управления окнами. На практике элементы этой функциональности могут сильно различаться. Элементы, обычно связанные с оконными менеджерами, позволяют пользователю открывать, закрывать, сворачивать, разворачивать, перемещать, изменять размер и отслеживать активные окна, включая декораторы окон. Многие оконные менеджеры также поставляются с различными утилитами и функциями, такими как панели задач, программы запуска, панели быстрого доступа для удобного разделения окон на две или четыре части экрана, рабочие пространства для группировки окон, значки на рабочем столе, обои, возможность удерживать выбранные окна на переднем плане, возможность «сворачивать» окна, отображая только их заголовки, каскадное расположение окон, упорядочивание окон в сетку, группировка окон одной и той же программы на панели задач для экономии места, а также многострочные панели задач.

История

В 1973 году Xerox Alto стал первым компьютером, поставленным с рабочим графическим интерфейсом WIMP. Он использовал оконный менеджер с наложением окон, позволявший окнам перекрываться. Однако это было настолько опережающим свое время, что его концепция не получила широкого распространения более десяти лет. Хотя неясно, содержит ли Microsoft Windows элементы дизайна, скопированные из классической Mac OS от Apple, очевидно, что ни одна из этих систем не была первой, создавшей графический интерфейс с наложением окон. В начале 1980-х годов Xerox Star, преемник Alto, использовал мозаичное размещение для большинства основных окон приложений и наложение только для диалоговых окон, что значительно уменьшило необходимость в наложении окон друг на друга. Классическая Mac OS была одним из первых коммерчески успешных примеров графического интерфейса, использовавшего своего рода управление наложением окон через QuickDraw. Её преемник, macOS, использует более продвинутый оконный менеджер, поддерживающий композитинг с Mac OS X 10.0, и был обновлен до Mac OS X 10.2 для поддержки композитинга с аппаратным ускорением через Quartz Compositor. GEM 1.1 от Digital Research была операционной средой, включавшей в себя оконный менеджер с наложением окон, позволявший всем окнам перекрываться. Она была выпущена в начале 1980-х годов.

Управляющие окнами X

В системах, использующих систему окон X, существует четкое различие между менеджером окон и оконной системой. Строго говоря, менеджер окон X не взаимодействует напрямую с видеооборудованием, мышью или клавиатурой – это ответственность сервера отображения. Пользователи X Window System могут легко использовать множество различных менеджеров окон, таких как Metacity, используемый в GNOME 2, и KWin, используемый в KDE Plasma Workspaces, и многие другие. Поскольку многие менеджеры окон являются модульными, пользователи могут использовать другие, например Compiz (3D-композитный менеджер окон), который заменяет стандартный менеджер окон. Sawfish и awesome, с другой стороны, – расширяемые менеджеры окон, предлагающие точный контроль над окнами. Компоненты различных менеджеров окон можно даже комбинировать; например, оформление окон из KWin можно использовать с компонентами рабочего стола и панели GNOME. Менеджеры окон X также имеют возможность переподчинять приложения, то есть, хотя изначально все приложения прикрепляются к корневому окну (фактически, ко всему экрану), приложение, запущенное в корневом окне, может быть переподчинено (то есть помещено внутрь) другого окна. Менеджеры окон в системе окон X принимают приложения из корневого окна и переподчиняют их для применения оформления окон (например, добавления панели заголовка). Переподчинение также можно использовать для добавления содержимого одного окна в другое. Например, приложение Flash Player может быть переподчинено окну браузера и отображаться пользователю как неотъемлемая часть этой программы. Менеджеры окон, поддерживающие переподчинение, таким образом, могут располагать одну или несколько программ в пределах одного окна и легко комбинировать различные способы организации окон, такие как мозаичное размещение и наложение.

Microsoft Windows

Microsoft Windows предоставляет интегрированный менеджер окон с наложением окон, начиная с Windows 2.0; Windows Vista представила компонующий Desktop Window Manager (dwm. exe) как необязательную альтернативу с аппаратным ускорением. В Windows, поскольку GDI является частью ядра, роль менеджера окон тесно связана с графическими подсистемами ядра и практически не подлежит замене, хотя сторонние утилиты могут использоваться для эмуляции тайлового менеджера окон поверх таких систем. Начиная с Windows 8, Desktop Window Manager, основанный на Direct3D, больше нельзя отключить. Его можно перезапустить только с помощью комбинации клавиш Ctrl+Shift+Win+B. Windows Explorer (explorer. exe) используется по умолчанию в качестве оболочки в современных системах Windows для обеспечения панели задач и файлового менеджера, а также многих функций менеджера окон; различные аспекты Windows можно изменять с помощью предоставляемых инструментов конфигурации, редактируя реестр Windows или используя сторонние инструменты, такие как WindowBlinds или Resource Hacker. Полный X Windows Server, позволяющий использовать менеджеры окон, портированные из Unix-подобных систем, также может быть предоставлен для Microsoft Windows через Cygwin/X даже в многооконном режиме (и другими реализациями X Window System). Таким образом, легко можно, например, запускать клиентские программы X Window System либо в той же среде Cygwin на той же машине, либо на системах Linux, BSD Unix и т. д. по сети, при этом только их графический интерфейс отображается и используется в среде Microsoft Windows. Следует отметить, что Microsoft и X Window System используют разные термины для описания схожих концепций. Например, Microsoft редко упоминает термин "менеджер окон", поскольку он интегрирован и не подлежит замене, и отличается от оболочки. Оболочка Windows аналогична концепции рабочего окружения в других системах графического пользовательского интерфейса.

ChromeOS

С 2021 года ChromeOS поставляется со своим собственным менеджером окон под названием Ash. Chromium и Ash используют общую кодовую базу.