X Window System
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.
Producent | |
---|---|
Architektura |
klient-serwer |
Pierwsze wydanie |
czerwiec 1984 |
Aktualna wersja |
X11R7.7 |
Licencja | |
Strona internetowa |
Nazwa X Windows (poprzez analogię do Microsoft Windows), chociaż rozpowszechniona, jest niepoprawna.
Najpopularniejszymi implementacjami X Window System są X.Org oraz XFree86.
Opis
edytujSystem 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 (ang. window manager).
Pierwszymi bibliotekami widgetów były Athena, Motif oraz OpenLook, 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.
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
edytuj- 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
edytuj- 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 zmiany |
---|---|---|
X1 | czerwiec 1984 | pierwszy raz użyto nazwy X; zmieniając protokół z synchronicznego protokołu używanego przez W Window System na asynchroniczny |
X6 | styczeń 1985 | pierwsza wersja udostępniona (odpłatnie) poza MIT |
X9 | wrzesień 1985 | kolor; pierwsze wydanie używające licencji X11 (MIT License) |
X10 | koniec 1985 | IBM RT/PC, AT (pod DOS) i inne platformy |
X10R2 | styczeń 1986 | |
X10R3 | luty 1986 | pierwsze wydanie dostępne poza MIT; UWM (Ultrix Window Manager) |
X10R4 | grudzień 1986 | ostatnia wersji X10 |
X11 | 1987-09-15 | pierwsza wersja X11 |
X11R2 | luty 1988 | pierwsze wydanie MIT X Consortium [1] (ang.) |
X11R3 | 1988-10-25 | XDM (the X Display Manager) |
X11R4 | 1989-12-22 | XDMCP (X Display Manager Control Protocol), twm (Tom’s Window Manager), rozszerzenie SHAPE, nowe czcionki |
X11R5 | 1991-09-05 | PHIGS (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 Consortium |
X11R6 | 1994-05-16 | ICCCM 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 Consortium |
X11R6.1 | 1996-03-14 | rozszerzenia DOUBLE-BUFFER, RECORD, XKEYBOARD |
X11R6.2 X11R6.3 (Broadway) |
1996-12-23 | rozszerzenie 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 [2] (ang.); ostatnie wydanie The X Consortium |
X11R6.4 | 1998-03-31 | Xinerama [3] (ang.); jedyne wydanie The Open Group X Project Team (X Window System, Version 11 Release 6.4 Release Notes (ang.)) |
X11R6.5 | wewnętrzne wydanie X.org | |
X11R6.5.1 | 2000-08-20 | pierwsze wydanie firmowane przez The X.Org Group (X Window System, Version 11 Release 6.5.1 Release Notes (ang.)) |
X11R6.6 | 2001-04-04 | ostatnie wydanie firmowane przez The X.Org Group (X Window System, Version 11 Release 6.6 Release Notes (ang.)) |
X11R6.7.0 | 2004-04-06 | pierwsze wydanie X.Org Foundation, dołączony kod z XFree86 4.4 RC2; IPv6, usunięcie rozszerzeń XIE, PEX i kodu libxml2 [4] (ang.) |
X11R6.8.0 | 2004-09-08 | przeroczyste okna (Window translucency), DMX (Distributed Multihead X), rozszerzenia XFixes, Damage, Composite i XEvIE (X Event Interception Extension) (Release Notes for X11R6.8 (ang.)) |
X11R6.8.1 | 2004-09-17 | poprawka bezpieczeństwa libXpm (Release Notes for X11R6.8.1 (ang.)) |
X11R6.8.2 | 2005-02-10 | poprawki, ulepszenia sterowników (Release Notes for X11R6.8.2 (ang.)) |
X11R6.9 X11R7.0 |
2005-12-21 | EXA, 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 (ang.)) |
X11R7.1 | 2006-05-22 | KDrive, AIGLX, ulepszenia EXA, ulepszenia wsparcia różnych systemów operacyjnych i wsparcia dla różnych platform sprzętowych (Release Notes for X11R7.1 (ang.)) |
X11R7.2 | 2007-02-15 | XCB (X C Binding), usunięcie rozszerzenia LBX, dodanie rozszerzenia XACE (security framework), ulepszenia autoconfig (nota wydania 7.2 (ang.)) |
X11R7.3 | 2007-09-06 | plug 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 (ang.)) |
X11R7.4 | 2008-09-23 | (nota wydania 7.4 (ang.)) |
X11R7.5 | 2009-10-26 | (nota wydania 7.5 (ang.)) |
X11R7.6 | 2010-12-20 | (nota wydania 7.6 (ang.)) |
X11R7.7 | 2012-06-06 | (nota wydania 7.7 (pol.)) |
Zobacz też
edytujLinki zewnętrzne
edytuj- R.W. Scheifler , X Window System Protocol, version 11: Alpha update April 1987, RFC 1013, IETF, czerwiec 1987, DOI: 10.17487/RFC1013, ISSN 2070-1721, OCLC 943595667 (ang.).