View
1.018
Download
0
Category
Preview:
DESCRIPTION
Prezentacja dotycząca systemu X11 stworzona na potrzeby zajęć na Uniwersytecie Mikołaja Kopernika.
Citation preview
X11
Czym jest X11 Architektura Serwer Klient
Kompilacja programu Opcje uruchamiania Konfiguracja
Piotr Gabryjeluk <quake@mat.umk.pl>
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
Architektura
Klient – serwer Rola serwera Rola klienta Rola serwera czcionek Protokół Biblioteki klienckie
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!
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
Ć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
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)
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 ...
Konfiguracja Xorg
/etc/X11/xorg.conf Section "InputDevice" – mysz, klawiatura Section "Device" – karta grafiki Section "Monitor" – monitor
Parametry monitora (odświeżanie, wymiary w mm) Section "Screen" – ekran
Wybór rozdzielczości w tym wirtualnej Section "ServerLayout"
Definiuje układ
Section "InputDevice"
# klawiaturaSection "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "pl" Option "XkbOptions" "lv3:ralt_switch"EndSection
# myszSection "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer"EndSection
Section "Device"
# karta grafikiSection "Device" Identifier "Configured Video Device" Driver "nvidia"EndSection
Section "Monitor"
# monitorSection "Monitor" Identifier "Configured Monitor" Option "Position" "0 1050"EndSection
Section "Screen"
# ekran nvidiaSection "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" Option "TwinView" "1" Option "TwinViewOrientation" "Below"EndSection
Section "Screen"
# ekran intelSection "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" SubSection "Display" Virtual 2048 2048 EndSubSectionEndSection
Section "ServerLayout"
# układ serweraSection "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Configured Mouse"EndSection
$ man Xorglayout name specify the ServerLayout section namescreen name specify the Screen section namekeyboard name specify the core keyboard InputDevice namepointer name specify the core pointer InputDevice name
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)
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
Argumenty linii polece ńklienta X
Standardowe programy napisane dla X wspierają zestaw podstawowych (i uniwersalnych) opcji pozwalających na zdefiniowanie początkowych cech programu display geometry name title sync
Qt: display geometry name title sync
Wa ne programyż
Środowisko
Menedżer okien
Panel
Dekorator okien
Menedżer składania
np. icewm
np. kwin
np. emerald
np. compiz
np. kicker
Konfiguracja klienta
rxvt*backspacekey: ^? rxvt*background: Black rxvt*foreground: wheat rxvt*cursorColor: Orchid rxvt*geometry: 100x18+40+300 rxvt*title: Linux rxvt*reverseVideo: false
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
Referencje
X.org Foundation, freedesktop.org http://x.org/
http://freedesktop.org/
Historia http://en.wikipedia.org/wiki/X11
http://en.wikipedia.org/wiki/X_Font_Server
Konfiguracja Xresources http://tldp.org/HOWTO/XWindowUserHOWTO/moreconfig.html
Recommended