X Window System

Z Multimediaexpo.cz

GNOME verze 3.14.1
KDE verze 4.3
Xfce verze 4.4
Historická ukázka prostředí X Window System v letech 1986–1994

X Window System (též X11 nebo jen X) je v informatice souhrnné označení pro software, které umožňuje vytvořit grafické uživatelské rozhraní (GUI). Používá se zejména v unixových systémech, kde se stalo standardem. Využívá model klient-server, skládá se z několika komponent, které jsou navzájem nezávislé (zejména X Server, X protokol, knihovna Xlib) a je portován na mnoho platforem (unixové systémyLinux, BSD, Mac OS X, Solaris, ale též Microsoft Windows). Mezi nejznámější desktopová prostředí postavená nad X Window System patří KDE a GNOME.

Obsah

Charakteristika

X Window System byl vyvinut na MIT v roce 1984 jako snaha o sjednocení GUI prostředí a přenositelnost grafických aplikací. Současná verze X11 pochází z roku 1987. Mezi nejznámější implementace používané na IBM PC dříve patřilo XFree86 a v současné době pak referenční implementace X.Org. X Window System je důsledně zpětně kompatibilní (staré aplikace je možné zobrazovat i v novém prostředí).

X Window System se skládá z několika základních komponent (X Server, X protokol, knihovna Xlib). Od počátku byl navržen jako nezávislý na konkrétní platformě a zároveň jako síťově transparentní, takže spuštěný program (aplikace) může vytvořit svůj výstup na jiném počítači, než na kterém je sám spuštěn (i na více různých počítačích). Využívá model klient-server, kde vstupy a výstupy zajišťuje X Server ovládající příslušný hardware (grafická karta, myš, klávesnice) a klientem jsou jednotlivé aplikace. Pro komunikaci mezi aplikacemi a X Serverem je používán X protokol, který je přenášen pomocí IPC nebo TCP/IP. X Server tedy zajišťuje přímý kontakt s uživatelem a přijímá pokyny pro zobrazování od aplikací. Aplikace od serveru naopak přijímají vstupy od uživatele a využívají zobrazovacích služeb, které jim X Server nabízí.

Knihovna Xlib umožňuje programátorovi interakci s X Serverem bez toho, aby musel znát detaily X protokolu, avšak velmi málo aplikací používá přímo knihovnu Xlib. Většina aplikací místo toho používá widgety z různých nadstavbových frameworků (GTK+, Qt, Motif atd.), které poskytují vyšší míru abstrakce (menu, tlačítka, dialogy).

V grafickém uživatelském prostředí jsou aplikace tradičně zobrazovány v podobě oken, což je umožňuje od sebe odlišit a mít jich na obrazovce více najednou (výjimkou je typicky menu a panel s vestavěnými aplikacemi, jako například hodiny). X Server však nezajišťuje logickou obsluhu zobrazovaných informací, a proto je pro správu zobrazených oken jednotlivých aplikací používán samostatný správce oken (anglicky: window manager). Správce oken umožňuje uživateli organizovat zobrazené aplikace, resp. jejich okna (přesun a změna velikosti okna, horní lišta oken, ohraničení oken, překrývání atp.). Z hlediska X Serveru je správce oken jen další aplikace (klient), a proto je snadno zaměnitelný. Vzorová implementace X Window System (X.Org) obsahuje pouze jednoduchého správce oken (TWM). Existuje mnoho dalších správců oken, přičemž mezi nejznámějším patří IceWM, FVWM, Sawfish, Window Maker, Kwm, Metacity, Fluxbox, Compiz a další.

Pro vytváření grafických uživatelských prostředí se kromě různých správců oken používají i další různé doplňující aplikace (taskbar, panel, hodiny…), které jsou ze stejných důvodů také zaměnitelné. Proto mohu grafická prostředí postavená nad X Window System vypadat různě. Mezi nejznámější desktopová prostředí patří KDE a GNOME.

Historie

Grafické prostředí pro operační systém UNIX začal vyvíjet institut MIT (Massachusetts Institute of Technology) v r. 1984. X Window System byl uživatelům k dispozici již následujícího roku ve verzi 9 (X9). Během dvou následujících let byly vyvinuty verze (release) 10 a 11. Označení X11 pak přetrvalo od roku 1987 dodnes a další verze jsou označovány jako revize (revision, např. X11R7.5 z roku 2009). Současná podoba systému oken X se principiálně nemění a nová vydání jsou rozšiřující především z pohledu způsobů implementace dalších rozšíření.

MIT nezůstal již v 80. letech ve vývoji X osamocen. Na rozsáhlém projektu spolupracovala řada univerzit, renomovaných firem (DEC, Sun Microsystems, IBM, Hewlett-Packard, AT&T aj.) a nezávislých odborníků. Spolupracující firmy se také stávají členy skupiny X Consorcium, založené pro podporu a vývoj systému X. Dnes je X považován za průmyslový standard grafického prostředí pracovních stanic a je definován v SVID jako X11Window System. SVID jako součást téhož svazku definuje i nadstavbu X s označením NeWS (Network/extensible Window System), integruje distribuované grafické prostředí uživatele a jako mechanizmus používá jazyk PostScript. Původním autorem NeWS je firma Sun Microsystems.

Nadace X.Org vede projekt X se současnou referenční implementací X11R7.5 (verzí 11 revizí 7.5 z roku 2009), dostupnou jako Svobodný software pod licencí MIT a podobnými licencemi.[1]

X Server

X Server je specifický program, který ovládá hardware a umožňuje tak vytvořit grafické uživatelské rozhraní (GUI). Obsluhuje jak vstupní zařízení (myš, klávesnice, touchpad), tak zobrazující hardware (grafická karta), které vytváří viditelný obraz (bitmapu, tzv. X display, včetně 2D a 3D implementací). X Server se skládá z hardwarově nezávislé části (implementace X protokolu) a hardwarově závislé části (ovládání grafické karty a vstupních zařízení). Implementace X Serveru v XFree86 byla monolitická, takže každá grafická karta měla vlastní X Server. Novější implementace v X.Org používá pro hardwarově závislé části moduly, které jsou v případě potřeby do univerzálního X Serveru zavedeny.

Velkou nevýhodou X Serveru je, že přímo přistupuje k hardware (ke grafické kartě), a proto musí v unixových systémech být spuštěn s právy uživatele root (správce počítače), což způsobuje bezpečnostní problémy v případě, že je v X Serveru programátorská chyba.[2] Tento nedostatek v Linuxu odstraňuje použití KMS (Kernel mode-setting), které již bylo v roce 2009 nasazeno v distribuci Moblin 2.0 (pokračovatelem Moblinu je distribuce MeeGo). Připravuje se nasazení i v ostatních distribucích a též se uvažuje o začlenění KMS do OpenBSD.

YouTube

MicroNugget: Running X11 Over SSH (anglicky)
What is Mac X11 (anglicky)


Souvislející články

Reference

  1. X.org – Licenses (anglicky)
  2. The High-Profile X.Org / Linux Kernel Security Bug

Externí odkazy


Flickr.com nabízí fotografie, obrázky a videa k tématu
X Window System