System X Window korzysta z architektury klient-serwer. Serwer X działa na komputerze z wyświetlaczem (monitory + urządzenia wejściowe), podczas gdy klienci X mogą działać na dowolnym innym komputerze i łączyć się z serwerem X za pomocą protokołu X (nie bezpośrednio, ale raczej za pomocą biblioteki, takiej jak Xlib lub bardziej nowoczesny, nieblokujący XCB sterowany zdarzeniami). Protokół X ma być rozszerzalny i ma wiele rozszerzeń (patrz xdpyinfo(1)
).
Serwer X wykonuje tylko operacje niskiego poziomu, takie jak tworzenie i niszczenie okien, wykonywanie operacji rysowania (obecnie większość rysunków odbywa się na kliencie i wysyłana jako obraz do serwera), wysyłanie zdarzeń do okien, ... Możesz zobaczyć, jak mało serwer X działa, uruchamiając X :1 &
(użyj dowolnej liczby, która nie jest jeszcze używana przez inny serwer X) lub Xephyr :1 &
(Xephyr uruchamia serwer X osadzony na bieżącym serwerze X), a następnie uruchamiając xterm -display :1 &
i przełączając się na nowy serwer X (może być konieczne skonfigurowanie autoryzacji X za pomocą xauth(1)
).
Jak widać, serwer X robi bardzo mało, nie rysuje pasków tytułowych, nie minimalizuje / ikonizuje okna, nie zarządza rozmieszczeniem okien ... Oczywiście można sterować rozmieszczeniem okien ręcznie uruchamiając polecenie jak xterm -geometry -0-0
, ale zwykle będziesz mieć specjalnego klienta X wykonującego powyższe czynności. Ten klient nazywa się menedżerem okien . Jednocześnie może być aktywny tylko jeden menedżer okien. Jeśli nadal masz otwarte goły serwer X poprzednich poleceń, można spróbować uruchomić menedżer okien na nim, jak twm
, metacity
, kwin
, compiz
, larswm
, pawm
, ...
Jak powiedzieliśmy, X wykonuje tylko operacje niskiego poziomu i nie zapewnia koncepcji wyższego poziomu, takich jak przyciski, menu, paski narzędzi, ... Są one dostarczane przez biblioteki zwane zestawami narzędzi , np .: Xaw, GTK, Qt, FLTK, ...
Środowiska pulpitu są kolekcjami programów zaprojektowanych w celu zapewnienia jednolitego interfejsu użytkownika. Środowiska pulpitu zazwyczaj zapewniają panele, programy uruchamiające aplikacje, tace systemowe, panele sterowania, infrastrukturę konfiguracji (gdzie zapisać ustawienia). Niektóre dobrze znane środowiska graficzne to KDE (zbudowane przy użyciu zestawu narzędzi Qt), Gnome (przy użyciu GTK), Oświecenie (przy użyciu własnych bibliotek narzędzi), ...
Niektóre nowoczesne efekty pulpitu najlepiej wykonywać przy użyciu sprzętu 3D. Pojawia się nowy komponent, menedżer kompozytów . Rozszerzenie X, rozszerzenie XComposite, wysyła zawartość okna do menedżera kompozytów. Menedżer kompozytów konwertuje te treści na tekstury i używa sprzętu 3D za pomocą OpenGL do komponowania ich na wiele sposobów (mieszanie alfa, projekcje 3D, ...).
Nie tak dawno temu serwer X rozmawiał bezpośrednio z urządzeniami sprzętowymi. Znaczna część obsługi tego urządzenia została przeniesiona do jądra systemu operacyjnego: DRI (umożliwiający dostęp do sprzętu 3d przez X i klientów bezpośredniego renderowania), evdev (zunifikowany interfejs do obsługi urządzeń wejściowych), KMS (przeniesienie ustawienia trybu graficznego na jądro) , GEM / TTM (zarządzanie pamięcią tekstur).
Dzięki złożoności obsługi urządzeń, które obecnie znajdują się głównie poza X, łatwiej było eksperymentować z uproszczonymi systemami okien. Wayland to system okien oparty na koncepcji menedżera kompozytów, tzn. Systemem okien jest menedżer kompozytów. Wayland korzysta z obsługi urządzeń, która wyszła z X i renderuje przy użyciu OpenGL.
Jeśli chodzi o Unity, jest to środowisko komputerowe zaprojektowane z interfejsem użytkownika odpowiednim dla netbooków.