22
X11 Czym jest X11 Architektura Serwer Klient Kompilacja programu Opcje uruchamiania Konfiguracja Piotr Gabryjeluk <[email protected]>

Prezentacja o X11

Embed Size (px)

DESCRIPTION

Prezentacja dotycząca systemu X11 stworzona na potrzeby zajęć na Uniwersytecie Mikołaja Kopernika.

Citation preview

Page 1: Prezentacja o X11

X11

Czym jest X11 Architektura Serwer Klient

Kompilacja programu Opcje uruchamiania Konfiguracja

Piotr Gabryjeluk <[email protected]>

Page 2: Prezentacja o X11

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

Page 3: Prezentacja o X11

Architektura

Klient – serwer Rola serwera Rola klienta Rola serwera czcionek Protokół Biblioteki klienckie

Page 4: Prezentacja o X11

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/.X11­unix/X<nr_serwera>

Może być gdzie indziej!

Page 5: Prezentacja o X11

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

Page 6: Prezentacja o X11

Ć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

Page 7: Prezentacja o X11

Historia serwera X

1987­1988: 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)

Page 8: Prezentacja o X11

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 ...

Page 9: Prezentacja o X11

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

Page 10: Prezentacja o X11

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

Page 11: Prezentacja o X11

Section "Device"

# karta grafikiSection "Device"        Identifier      "Configured Video Device"        Driver          "nvidia"EndSection

Page 12: Prezentacja o X11

Section "Monitor"

# monitorSection "Monitor"        Identifier      "Configured Monitor"        Option          "Position" "0 ­1050"EndSection

Page 13: Prezentacja o X11

Section "Screen"

# ekran nvidiaSection "Screen"        Identifier      "Default Screen"        Monitor         "Configured Monitor"        Device          "Configured Video Device"        Option          "TwinView" "1"        Option          "TwinViewOrientation" "Below"EndSection

Page 14: Prezentacja o X11

Section "Screen"

# ekran intelSection "Screen"        Identifier      "Default Screen"        Monitor         "Configured Monitor"        Device          "Configured Video Device"        SubSection "Display"                Virtual         2048 2048        EndSubSectionEndSection

Page 15: Prezentacja o X11

Section "ServerLayout"

# układ serweraSection "ServerLayout"        Identifier      "Default Layout"        Screen          "Default Screen"        InputDevice     "Configured Mouse"EndSection

$ man Xorg­layout name           specify the ServerLayout section                       name­screen name           specify the Screen section name­keyboard name         specify the core keyboard                       InputDevice name­pointer name          specify the core pointer                       InputDevice name

Page 16: Prezentacja o X11

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)

Page 17: Prezentacja o X11

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

Page 18: Prezentacja o X11

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

Page 19: Prezentacja o X11

Wa ne programyż

Środowisko

Menedżer okien

Panel

Dekorator okien

Menedżer składania

np. icewm

np. kwin

np. emerald

np. compiz

np. kicker

Page 20: Prezentacja o X11

Konfiguracja klienta

rxvt*backspacekey: ^? rxvt*background: Black rxvt*foreground: wheat rxvt*cursorColor: Orchid rxvt*geometry: 100x18+40+300  rxvt*title: Linux rxvt*reverseVideo: false

Page 21: Prezentacja o X11

U klienta czy u serwera?

U klienta, czyli tam, gdzie jest uruchamiany program (nieważne na jakim X serwerze) ~/.Xdefaults ~/.Xresources /etc/X11/app­defaults/

U serwera, czyli tam, gdzie nasz monitor(nieważne skąd uruchamiany jest program) xrdb -query xrdb -merge

Page 22: Prezentacja o X11

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/XWindow­User­HOWTO/moreconfig.html