prezentacja o x11

Post on 26-Jun-2015

1.018 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

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)

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

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/app­defaults/

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

top related