Okenní systém - Windowing system

Typické prvky okna . Dekoraci okna kreslí buď správce oken, nebo klient. Nakreslení obsahu je úkolem klienta.

V oblasti výpočetní techniky je okenní systém (nebo okenní systém ) software, který spravuje samostatně různé části obrazovek . Je to typ grafického uživatelského rozhraní (GUI), které implementuje paradigma WIMP ( okna , ikony , nabídky , ukazatele ) pro uživatelské rozhraní .

Každé aktuálně spuštěné aplikaci je přiřazen obvykle měnitelný a obvykle obdélníkový povrch displeje, aby uživateli představil své GUI; tato okna se mohou navzájem překrývat, na rozdíl od rozhraní pro obklady, kde se nesmí překrývat. Kolem každého okna je obvykle nakreslena okenní dekorace . Programování jak dekorace okna, tak dostupných widgetů uvnitř okna, které jsou grafickými prvky pro přímou interakci uživatele, jako jsou posuvníky, tlačítka atd., Je usnadněno a zjednodušeno pomocí sad nástrojů widgetů .

Technické údaje

Hlavní součást jakéhokoli okenního systému se obvykle nazývá zobrazovací server , ačkoli se používají i alternativní označení, jako je okenní server nebo skladatel. Každá aplikace, která spouští a zobrazuje své grafické uživatelské rozhraní v okně, je klientem zobrazovacího serveru. Zobrazovací server a jeho klienti spolu komunikují prostřednictvím komunikačního protokolu , který se obvykle nazývá protokol zobrazovacího serveru, přičemž zobrazovací server je prostředníkem mezi klienty a uživatelem. Přijímá všechny vstupy z jádra , které jádro přijímá ze všech připojených vstupních zařízení , jako je klávesnice , polohovací zařízení nebo dotyková obrazovka, a přenáší je do správného klienta. Zobrazovací server je také zodpovědný za výstup klientů na monitor počítače . Výstup zvuku obvykle není řízen zobrazovacím serverem, ale hlasitost zvuku je obvykle zpracovávána prostřednictvím GUI apletů a o tom, které aplikace jsou nahoře, rozhoduje zobrazovací server. Okenní systém umožňuje uživateli počítače pracovat s několika programy současně. Každý program představuje své GUI ve svém vlastním okně, což je obecně obdélníková oblast obrazovky.

Z pohledu programátora implementuje okenní systém grafické primitivy. Například: vykreslování písem nebo kreslení čáry na obrazovce. Poskytuje abstrakci grafického hardwaru pro použití vyššími prvky grafického rozhraní, jako je správce oken.

Protokol zobrazovacího serveru může být síťový nebo dokonce transparentní , což usnadňuje implementaci tenkých klientů .

Zobrazit server

Základní součásti GUI : Zobrazovací server implementuje okenní systém. Jednoduchý správce oken kreslí pouze dekorace oken , ale skládající se správci oken toho zvládnou víc.

Displej serveru nebo serveru okno je program, jehož hlavním úkolem je koordinovat vstupy a výstupy svých klientů do a ze zbytku operačního systému, hardwaru a navzájem. Zobrazovací server komunikuje se svými klienty prostřednictvím protokolu zobrazovacího serveru, komunikačního protokolu , který může být transparentní pro síť nebo jednoduše síťový.

Zobrazovací server je klíčovou součástí jakéhokoli grafického uživatelského rozhraní , konkrétně systému oken.

Zobrazit komunikační protokoly serveru

X11

X.Org Server komunikuje se svými klienty, např Amarok , přes protokol X11
Logo X Window System

Jedním z příkladů zobrazovacího serveru je X.Org Server , který běží nad jádrem (obvykle jádro podobné Unixu , jako je Linux nebo BSD ). Přijímá uživatelská vstupní data (např. Z evdev na Linuxu) a předává je jednomu ze svých klientů. Zobrazovací server také přijímá data od svých klientů; zpracovává data, provádí skládání a v Linuxu je předává datům do jedné ze tří součástí jádra - ovladače DRM , gem nebo KMS . Komponenta zapíše data do framebufferu a obsah framebufferu se přenese na připojenou obrazovku a zobrazí se. X spoléhá na GLX .

Jednou z implementací konceptu zobrazovacího serveru je X Window System , zejména jeho skutečně používaná verze - klientské knihovny X.Org Server a Xlib a XCB . Server X.Org je zobrazovací server, ale ve své současné implementaci spoléhá na druhý program, správce oken pro vytváření kompozic. Příkladem jsou Mutter nebo KWin .

Pozoruhodnými příklady zobrazovacích serverů implementujících protokol zobrazovacího serveru X11 jsou X.Org Server , XFree86 , XQuartz a Cygwin/X , zatímco klientské knihovny implementující protokol zobrazovacího serveru X11 jsou Xlib a XCB .

Wayland

Serverový protokol Wayland
Logo Wayland

Zobrazovací servery, které implementují protokol zobrazovacího serveru Wayland, se nazývají skladatelé Wayland . Jako každý zobrazovací server je i Waylandský skladatel zodpovědný za zpracování vstupu a výstupu pro své klienty a - na rozdíl od X11 - navíc za skládání . Příkladem jsou Weston , Mutter , KWin nebo Enlightenment .

Skladatelé Wayland komunikují s klienty Wayland přes protokol zobrazovacího serveru Wayland . Tento protokol definuje, že klienti mohou přímo zapisovat data do framebufferu pomocí API pro vykreslování EGL . Zobrazovací server se stále může rozhodnout, které okno je nahoře, a tedy viditelné pro uživatele, a také stále odpovídá za předávání dat týkajících se vstupních zařízení z evdev svým klientům.

Wayland se do určité míry používá v některých distribucích Linuxu pro počítače, jako je Fedora . Je také vhodný pro mobilní počítače a byl přijat například projekty zaměřenými na smartphony a tablety Tizen , Sailfish OS a AsteroidOS .

Implementace Waylandu je k dispozici pod licencí MIT , knihovnami libwayland-client a libwayland-server.

Pokračuje úsilí o přidání podpory Wayland do systému Chrome OS .

Mir

Serveru displej Mir je dodáván s vlastním displejem Mir serveru protokolu, který se liší od těch, které používají X11 a Wayland. Mir navíc podporuje protokol X11. Byl vyvinut společností Canonical a měl být zvoleným zobrazovacím serverem pro Ubuntu . Od roku 2017 byl nahrazen zobrazovacím serverem Wayland pro desktopové edice Ubuntu.

Pod GPLv3 jsou k dispozici implementace Mir display serveru, libmir-server a libmir-client knihovny .

SurfaceFlinger

Google vyvinul zobrazovací server s názvem SurfaceFlinger pro Android (další operační systém založený na jádru Linuxu primárně pro mobilní zařízení):

Všechno v Androidu je vykresleno na „povrch“; „povrchy“ jsou vytvářeny aplikacemi a umísťovány do fronty, kterou spravuje SurfaceFlinger.

Ještě dalším řešením specifickým pro Android je „Gralloc“. Gralloc zpracovává paměť zařízení, tj. Alokaci, arbitráž, synchronizaci pomocí deskriptorů plotových souborů Android/Linux (FD). Gralloc konkuruje jiným řešením, jako je např. Mesa's Generic Buffer Management (GBM) nebo Nvidia EGLStreams. Hardwarová abstrakční vrstva gralloc (HAL) se používá k přidělení vyrovnávacích pamětí, které jsou základem „povrchů“.

Pro skládání v systému Android jsou povrchy odesílány do SurfaceFlinger, který k vytváření kompozic používá OpenGL ES.

Hardware Composer HAL (HWC) byl představen v systému Android 3.0 a v průběhu let se neustále vyvíjel. Jeho primárním účelem je určit nejefektivnější způsob kompozitních vyrovnávacích pamětí s dostupným hardwarem. Jako HAL je jeho implementace specifická pro zařízení a obvykle ji provádí OEM hardwaru displeje.

Quartz Compositor

U řady operačních systémů Apple macOS plní Quartz Compositor úkoly zobrazovacího serveru a správce oken v systému oken.

Správce oken na ploše

Pro Microsoft Windows , od Windows Vista kupředu, Desktop Window Manager umožňuje použití hardwarové akcelerace vykreslit grafické uživatelské rozhraní. Původně byl vytvořen tak, aby umožňoval části nového uživatelského prostředí „Windows Aero“, které umožňovalo efekty jako průhlednost, přepínání 3D oken a další. Je také součástí systému Windows Server 2008, ale vyžaduje instalaci funkce „Desktop Experience“ a kompatibilní grafické ovladače.

Seznam okenních systémů

Pro operační systémy podobné Unixu

Pro operační systémy řady Windows NT

Webové okenní systémy

jiný

Komerční systémy, jako je Microsoft Windows ( XP , 9x a starší), klasický Mac OS (verze 9 a starší) a Palm OS , obsahují systém oken, který je integrován s operačním systémem.

Viz také

Reference