thumb|upright

X Window System – system okien, czyli komponent graficznego interfejsu użytkownika, stworzony w latach 80. XX wieku w laboratoriach Massachusetts Institute of Technology (MIT). Obecnie prace nadzoruje X.Org Foundation, a najnowszym wydaniem jest wersja 11. Często oprócz X Window System stosuje się też nazwę X, X11, X11R6 (dla implementacji X.Org w wersjach 6) lub X11R7.

Nazwa X Windows (poprzez analogię do Microsoft Windows), chociaż rozpowszechniona, jest niepoprawna.

Najpopularniejszymi implementacjami X Window System są X.Org oraz XFree86.

Opis thumb|250px|X Window System historyczny już graficzny interfejs użytkownika; aplikacje dystrybucji MIT X Consortium uruchomione pod menedżerem okien twm: X Terminal, Xbiff, xload oraz graficzny edytor alt=|mały|Środowisko graficzne GNOME

System X tworzy okna, na których program może tworzyć obraz, oraz zajmuje się obsługą urządzeń wejściowych (myszki, klawiatury, tabletu). Serwer X może rysować tylko najprostsze obiekty (odcinki, wielokąty, elipsy, wyświetlać bitmapy, stawiać pojedyncze piksele), nie dostarcza natomiast żadnego interfejsu użytkownika, czyli przycisków, rozwijanych menu, pasków przewijania itp. Rysowaniem i obsługą tych elementów musi zająć się program, najczęściej jest to biblioteka widgetów. System X nie zajmuje się również obsługą okien, nie dostarcza żadnych wbudowanych mechanizmów do ich przesuwania, zmiany rozmiaru, zamykania i uruchamiania programów itd., nie rysuje także pasków tytułowych dla okien – tym wszystkim musi zająć się osobny program, tzw. menedżer okien ().

Pierwszymi bibliotekami widgetów były , Motif oraz , dzięki którym udało się stworzyć proste środowiska graficzne. Dzisiejsze GNOME i KDE (korzystające odpowiednio z bibliotek: GTK i GTK+ oraz Qt) to całe rozbudowane środowiska graficzne starające się tworzyć pewną użytkową całość.

X Window System zaprojektowany jest w architekturze klient-serwer, co oznacza, że składa się z dwóch elementów: z serwera, zajmującego się wyświetlaniem grafiki oraz obsługą klawiatury i myszy, oraz z klienta, czyli oprogramowania żądającego od serwera zmian zawartości okna. Oba elementy komunikują się ze sobą przy pomocy protokołu przezroczystego sieciowo, co oznacza, że nie ma znaczenia, czy oba elementy systemu działają na tym samym komputerze, czy na dwóch różnych maszynach. Jedna maszyna może wykonywać program, druga może wyświetlać wynik działania programu. Przykładem może być sytuacja, w której użytkownik pracuje zdalnie na odległym komputerze, korzystając z X Window System. Jego lokalny komputer (ten, przy którym siedzi) działa jako serwer X, zapewniając graficzny interfejs użytkownika. Na zdalnym komputerze działa uruchomiony przez użytkownika program, będący klientem serwera X działającego na maszynie lokalnej. Z serwera na maszynie lokalnej program na maszynie odległej otrzymuje instrukcje sterujące użytkownika i na maszynę lokalną przesyła wyniki swojego działania.

Dzięki architekturze klient-serwer, niezależnej od platformy sprzętowej i systemowej, możliwe jest uruchamianie zdalne aplikacji działających w systemie operacyjnym zupełnie innym niż ten, na którym działa program X-serwera (odpowiadającego za wejście-wyjście, czyli przesyłanie zdarzeń użytkownika, czyli naciśnięć klawiszy czy ruchów myszą, oraz za wyświetlanie wyników pracy programów na ekranie). W ten sposób można było, na przykład, pracować zdalnie uruchamiając aplikacje na serwerze z procesorem RISC i systemem UNIX siedząc przy komputerze PC pracującym w systemie DOS lub Windows.

Twórcy protokołu X przewidzieli możliwość jego rozszerzenia o nowe funkcje. Na przykład na potrzeby biblioteki OpenGL powstało rozszerzenie GLX.

Historia X Window System został stworzony w czerwcu 1984 roku w laboratoriach Massachusetts Institute of Technology (MIT) przez Boba Scheiflera. W 1988 powołano MIT X Consortium, a w 1992 postanowiono przenieść konsorcjum poza MIT, tworząc oddzielną i niezależną organizację. W 1993 roku utworzono X Consortium, finansowane przez jego członków. 1 stycznia 1994 roku wszystkie prawa do X Window System zostały przekazane X Consortium, Inc. Na początku 1996 roku w wyniku połączenia Open Software Foundation (OSF) i X/Open powstała The Open Group. X Consortium, Inc. zostało rozwiązane 31 grudnia 1996 roku. Wszystkie prawa do X Window System przekazano The Open Group. X Project Team została utworzona przez The Open Group jako następca X Consortium, Inc. The Open Group rozwiązało X Project Team i w maju 1999 roku powołało X.Org Group. 22 stycznia 2004 członkowie X.Org Group utworzyli X.Org Foundation.

Wydania przed X11R2 – MIT od X11R2 do X11R5 – MIT X Consortium od X11R6.0 do X11R6.3 – The X Consortium, Inc. X11R6.4 – The Open Group X Project Team X11R6.5, X11R6.5.1, X11R6.6 – The X.Org Group od X11R6.7 – X.Org Foundation + wersja data wydania najważniejsze zmianyX1 czerwiec 1984pierwszy raz użyto nazwy X; zmieniając protokół z synchronicznego protokołu używanego przez W Window System na asynchronicznyX6 styczeń 1985pierwsza wersja udostępniona (odpłatnie) poza MITX9 wrzesień 1985kolor; pierwsze wydanie używające licencji X11 (MIT License)X10 koniec 1985IBM RT/PC, AT (pod DOS) i inne platformyX10R2 styczeń 1986X10R3 luty 1986pierwsze wydanie dostępne poza MIT; UWM (Ultrix Window Manager)X10R4 grudzień 1986ostatnia wersji X10X11 1987-09-15pierwsza wersja X11X11R2 luty 1988pierwsze wydanie MIT X Consortium http://www.linuxdocs.org/HOWTOs/XWindow-User-HOWTO-2.html X11R3 1988-10-25XDM (the X Display Manager)X11R4 1989-12-22XDMCP (X Display Manager Control Protocol), twm (Tom’s Window Manager), rozszerzenie SHAPE, nowe czcionkiX11R5 1991-09-05PHIGS (Programmer’s Hierarchical Interactive Graphics System) 3D API używane przez rozszerzenie PEX, Xcms (system zarządzania kolorem), xfs (X font server), nowa gałąź kodu X386, rozszerzenie XVideo; ostatnie wydanie MIT X ConsortiumX11R6 1994-05-16ICCCM v2.0 (Inter-Client Communication Conventions Manual); Inter-Client Exchange; X Session Management; rozszerzenia SYNC, XIE (X Image Extension), XTEST, XInputExtension, BIG-REQUESTS, XC-MISC; pojawia się gałąź kodu XFree86; pierwsze wydanie The X ConsortiumX11R6.1 1996-03-14rozszerzenia DOUBLE-BUFFER, RECORD, XKEYBOARDX11R6.2X11R6.3 (Broadway) 1996-12-23rozszerzenie LBX (Low Bandwidth X); ostatnie wydanie przez X Consortium; X11R6.2 is the tag for a subset of X11R6.3 with the only new features over R6.1 being XPrint and the Xlib implementation of vertical writing and user-defined character support http://www.xfree86.org/3.3.6/RELNOTES1.html ; ostatnie wydanie The X ConsortiumX11R6.4 1998-03-31Xinerama http://www.opengroup.org/tech/desktop/Press_Releases/x11r6.4ga.htm ; jedyne wydanie The Open Group X Project Team (X Window System, Version 11 Release 6.4 Release Notes )X11R6.5 wewnętrzne wydanie X.orgX11R6.5.1 2000-08-20pierwsze wydanie firmowane przez The X.Org Group (X Window System, Version 11 Release 6.5.1 Release Notes )X11R6.6 2001-04-04ostatnie wydanie firmowane przez The X.Org Group (X Window System, Version 11 Release 6.6 Release Notes )X11R6.7.0 2004-04-06pierwsze wydanie X.Org Foundation, dołączony kod z XFree86 4.4 RC2; IPv6, usunięcie rozszerzeń XIE, PEX i kodu libxml2 http://lwn.net/Articles/79302/ X11R6.8.0 2004-09-08przeroczyste okna (Window translucency), DMX (Distributed Multihead X), rozszerzenia XFixes, Damage, Composite i XEvIE (X Event Interception Extension) (Release Notes for X11R6.8 )X11R6.8.1 2004-09-17poprawka bezpieczeństwa libXpm (Release Notes for X11R6.8.1 )X11R6.8.2 2005-02-10poprawki, ulepszenia sterowników (Release Notes for X11R6.8.2 )X11R6.9X11R7.0 2005-12-21EXA, istotne zmiany: wersja 7.0 używa Autotools (GNU Build System); ostatnią wersją używającą imake jest wersja 6.9 (Release Notes for X11R6.9 and X11R7.0 )X11R7.1 2006-05-22KDrive, AIGLX, ulepszenia EXA, ulepszenia wsparcia różnych systemów operacyjnych i wsparcia dla różnych platform sprzętowych (Release Notes for X11R7.1 )X11R7.2 2007-02-15XCB (X C Binding), usunięcie rozszerzenia LBX, dodanie rozszerzenia XACE (security framework), ulepszenia autoconfig (nota wydania 7.2 )X11R7.3 2007-09-06plug and play wejścia (input hotplug) i wyjścia (output hotplug – RandR 1.2), DTrace pod OpenSolaris, ulepszenia KDrive; w przygotowaniu: moduły dla SELinux i Solaris Trusted Extensions, wsparcie dla UnixWare (nota wydania 7.3 )X11R7.4 2008-09-23(nota wydania 7.4 )X11R7.5 2009-10-26(nota wydania 7.5 )X11R7.6 2010-12-20(nota wydania 7.6 )X11R7.7 2012-06-06(nota wydania 7.7 )

Zobacz też

NX, VNC GDI, Quartz DRI AIGLX, XGL Wayland (serwer wyświetlania)

Przypisy

Kategoria:Oprogramowanie graficzne

Kategoria:Protokoły warstwy aplikacji