SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
X11
              Piotr Gabryjeluk <quake@mat.umk.pl>


    Czym jest X11




    Architektura




    Serwer




    Klient



        Kompilacja programu
    


        Opcje uruchamiania
    


        Konfiguracja
    
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 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
         
Section quot;InputDevicequot;

# klawiatura
Section quot;InputDevicequot;
        Identifier      quot;Generic Keyboardquot;
        Driver          quot;kbdquot;
        Option          quot;XkbRulesquot;      quot;xorgquot;
        Option          quot;XkbModelquot;      quot;pc105quot;
        Option          quot;XkbLayoutquot;     quot;plquot;
        Option          quot;XkbOptionsquot;    quot;lv3:ralt_switchquot;
EndSection

# mysz
Section quot;InputDevicequot;
        Identifier      quot;Configured Mousequot;
        Driver          quot;mousequot;
        Option          quot;CorePointerquot;
EndSection
Section quot;Devicequot;

# karta grafiki
Section quot;Devicequot;
        Identifier      quot;Configured Video Devicequot;
        Driver          quot;nvidiaquot;
EndSection
Section quot;Monitorquot;

# monitor
Section quot;Monitorquot;
        Identifier      quot;Configured Monitorquot;
        Option          quot;Positionquot; quot;0 ­1050quot;
EndSection
Section quot;Screenquot;

# ekran nvidia
Section quot;Screenquot;
        Identifier      quot;Default Screenquot;
        Monitor         quot;Configured Monitorquot;
        Device          quot;Configured Video Devicequot;
        Option          quot;TwinViewquot; quot;1quot;
        Option          quot;TwinViewOrientationquot; quot;Belowquot;
EndSection
Section quot;Screenquot;

# ekran intel
Section quot;Screenquot;
        Identifier      quot;Default Screenquot;
        Monitor         quot;Configured Monitorquot;
        Device          quot;Configured Video Devicequot;
        SubSection quot;Displayquot;
                Virtual         2048 2048
        EndSubSection
EndSection
Section quot;ServerLayoutquot;

# układ serwera
Section quot;ServerLayoutquot;
        Identifier      quot;Default Layoutquot;
        Screen          quot;Default Screenquot;
        InputDevice     quot;Configured Mousequot;
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
                             Qt:
       ­display
    


                                  ­­display
        ­geometry             
    


                                  ­­geometry
        ­name
                              
    


                                  ­­name
        ­title                
    


                                  ­­title
        ­sync
                              
    


                                  ­­sync
                              
Ważne programy

                     np. icewm
   Środowisko

                     np. kwin
 Menedżer okien


                     np. emerald
 Dekorator okien


                     np. compiz
Menedżer składania



                     np. kicker
      Panel
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
    

Más contenido relacionado

Similar a Prezentacja o X11

Co nowego w świecie Ruby\'ego
Co nowego w świecie Ruby\'egoCo nowego w świecie Ruby\'ego
Co nowego w świecie Ruby\'egoBootstrap
 
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016PROIDEA
 
.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemniceWydawnictwo Helion
 
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...Łukasz Grala
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPLaravel Poland MeetUp
 
Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2Wydawnictwo Helion
 
Diagnostyka sprzętu komputerowego
Diagnostyka sprzętu komputerowegoDiagnostyka sprzętu komputerowego
Diagnostyka sprzętu komputerowegoWydawnictwo Helion
 
Windows XP PL. Księga eksperta
Windows XP PL. Księga ekspertaWindows XP PL. Księga eksperta
Windows XP PL. Księga ekspertaWydawnictwo Helion
 
Asembler. Podręcznik programisty
Asembler. Podręcznik programistyAsembler. Podręcznik programisty
Asembler. Podręcznik programistyWydawnictwo Helion
 
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnychGanymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnychSKN Shader
 
EdgeCAM. Komputerowe wspomaganie wytwarzania
EdgeCAM. Komputerowe wspomaganie wytwarzaniaEdgeCAM. Komputerowe wspomaganie wytwarzania
EdgeCAM. Komputerowe wspomaganie wytwarzaniaWydawnictwo Helion
 
Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...RST Software Masters
 

Similar a Prezentacja o X11 (20)

Co nowego w świecie Ruby\'ego
Co nowego w świecie Ruby\'egoCo nowego w świecie Ruby\'ego
Co nowego w świecie Ruby\'ego
 
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
 
.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice.Net. Najpilniej strzeżone tajemnice
.Net. Najpilniej strzeżone tajemnice
 
J2ME. Praktyczne projekty
J2ME. Praktyczne projektyJ2ME. Praktyczne projekty
J2ME. Praktyczne projekty
 
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości   Adm...
Łukasz Grala - WSKIZ 2009-04-07 It Academic - SQL Server 2008 - Nowości Adm...
 
Automatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHPAutomatyzacja utrzymania jakości w środowisku PHP
Automatyzacja utrzymania jakości w środowisku PHP
 
Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2Perełki programowania gier. Vademecum profesjonalisty. Tom 2
Perełki programowania gier. Vademecum profesjonalisty. Tom 2
 
Diagnostyka sprzętu komputerowego
Diagnostyka sprzętu komputerowegoDiagnostyka sprzętu komputerowego
Diagnostyka sprzętu komputerowego
 
Windows XP PL. Księga eksperta
Windows XP PL. Księga ekspertaWindows XP PL. Księga eksperta
Windows XP PL. Księga eksperta
 
ABC sam składam komputer
ABC sam składam komputerABC sam składam komputer
ABC sam składam komputer
 
Asembler. Podręcznik programisty
Asembler. Podręcznik programistyAsembler. Podręcznik programisty
Asembler. Podręcznik programisty
 
Java. Sztuka programowania
Java. Sztuka programowaniaJava. Sztuka programowania
Java. Sztuka programowania
 
Po prostu Red Hat Linux 8
Po prostu Red Hat Linux 8Po prostu Red Hat Linux 8
Po prostu Red Hat Linux 8
 
OpenGL. Programowanie gier
OpenGL. Programowanie gierOpenGL. Programowanie gier
OpenGL. Programowanie gier
 
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnychGanymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
Ganymede - nowoczesne technologie w grach przeglądarkowych i mobilnych
 
Delphi. Szybki start
Delphi. Szybki startDelphi. Szybki start
Delphi. Szybki start
 
EdgeCAM. Komputerowe wspomaganie wytwarzania
EdgeCAM. Komputerowe wspomaganie wytwarzaniaEdgeCAM. Komputerowe wspomaganie wytwarzania
EdgeCAM. Komputerowe wspomaganie wytwarzania
 
Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...
Tomek Banasiak: Jak bez stresu obserwować rosnący ruch w Twojej usłudze? Czyl...
 
Mandrake Linux
Mandrake LinuxMandrake Linux
Mandrake Linux
 
ABC Delphi 2006
ABC Delphi 2006ABC Delphi 2006
ABC Delphi 2006
 

Prezentacja o X11