Upload
piotrgabryjeluk
View
1.018
Download
0
Embed Size (px)
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 <[email protected]>
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