1. X11
Piotr Gabryjeluk <quake@mat.umk.pl>
Czym jest X11
Architektura
Serwer
Klient
Kompilacja programu
Opcje uruchamiania
Konfiguracja
2. X11
Oprogramowanie i protokół sieciowy, które
zapewniają graficzny interfejs użytkownika
w środowisku sieciowym
Podstawowy system graficzny dla Linuksa, BSD,
Solarisa, ...
Implementacja serwera i bibliotek dla Windows
(Xming), MacOS
X11 bez karty graficznej? Xvnc
4. Zmienna $DISPLAY
:<nr_serwera>
:<nr_serwera>.<nr_ekranu>
<host>:<nr_serwera>
<host>:<nr_serwera>.<nr_ekranu>
przykłady: :0 , :1 , 192.168.1.1:0
Port TCP = nr_serwera + 6000
Gniazdo UNIX: /tmp/.X11unix/X<nr_serwera>
Może być gdzie indziej!
5. Zadanie
Czy domyślnie uruchomiony w Ubuntu serwer X
nasłuchuje również na gnieździe TCP?
Dlaczego nie? (jeśli nie)
Podpowiedź: parametry uruchomienia
6. Ćwiczenie
Uruchomić (samemu) serwer X
Znaleźć logi serwera
Uruchomić klienta X
export DISPLAY=:0
Klient X – xterm
Informacje – xset -q
Uruchomić xterm na innym serwerze X
xhost +192.168.133.<?>
export DISPLAY=192.168.133.<?>:0
7. Historia serwera X
19871988: MIT X11R2
1992: X386 (późniejszy XFree86)
Wsparcie dla BSD i Linuksa
XFree86 4.x
~1999: X.org
2004: włączenie kodu z XFree86 4.4 RC2 do X.org
(R6.5)
8. Historia serwera X c.d.
2004: X.org 6.8 – ”początki przeźroczystości”
2005/06: X.org 6.9 vs X.org 7.0
imake vs autotools i pełna modularność!
2006: X.org 7.1 – rozszerzenia ”3D”: AIGLX, EXA
2007: X.org 7.3 – hotplug, RandR 1.2 (!)
wrzesień 2008: X.org 7.4 – obecna wersja
...
9. Konfiguracja Xorg
/etc/X11/xorg.conf
Section quot;InputDevicequot; – mysz, klawiatura
Section quot;Devicequot; – karta grafiki
Section quot;Monitorquot; – monitor
Parametry monitora (odświeżanie, wymiary w mm)
Section quot;Screenquot; – ekran
Wybór rozdzielczości w tym wirtualnej
Section quot;ServerLayoutquot;
Definiuje układ
16. X Font Server
”Pomoc” dla serwera X polegająca na renderowaniu
czcionek (zamiana tekstu i opisu czcionki np.
TrueType na bitmapę)
Section Files
FontPath ”unix/:7100”
Przedawnione ze względu na to, że
Komputery są już dość szybkie
Większość czcionek jest renderowana po stronie klienta
(korzystając np. z Xft, Cairo i rozszerzenia XRender)
17. Klient X
Klient używa biblioteki Xlib
(lub biblioteki nabudowanej na Xlib, np. Qt)
Kompilacja przez gcc
gcc xclient.c -lX11
Kompilacja z użyciem xmkmf i systemu imake
Obecnie: autotools
Deweloper: aclocal, autoconf, libtoolize
Użytkownik: ./configure, make
18. Argumenty linii poleceń
klienta X
Standardowe programy napisane dla X wspierają
zestaw podstawowych (i uniwersalnych) opcji
pozwalających na zdefiniowanie początkowych cech
programu
Qt:
display
display
geometry
geometry
name
name
title
title
sync
sync
19. Ważne programy
np. icewm
Środowisko
np. kwin
Menedżer okien
np. emerald
Dekorator okien
np. compiz
Menedżer składania
np. kicker
Panel
21. U klienta czy u serwera?
U klienta, czyli tam, gdzie jest uruchamiany
program (nieważne na jakim X serwerze)
~/.Xdefaults
~/.Xresources
/etc/X11/appdefaults/
U serwera, czyli tam, gdzie nasz monitor
(nieważne skąd uruchamiany jest program)
xrdb -query
xrdb -merge