From Wikipedia, the free encyclopedia
X Window System (též X11 nebo jen X) je v informatice souhrnné označení pro software, který umožňuje vytvořit grafické uživatelské prostředí (GUI). Používá se zejména v unixových systémech, kde se stal 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émy – Linux, BSD, macOS, Solaris, ale též Microsoft Windows). Mezi nejznámější desktopová prostředí postavená na X Window System patří KDE a GNOME.
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 mohou grafická prostředí postavená nad X Window System vypadat různě. Mezi nejznámější desktopová prostředí patří KDE a GNOME.
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 je specifický program, který ovládá hardware a umožňuje tak vytvořit grafické uživatelské prostředí (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.