DXPC(1)

NAZWA
dxpc - różnicowy kompresor protokołu X

WERSJA
3.8.0

SKŁADNIA
dxpc [wspólne] [klient | serwer] [połączenie]
[wspólne] opcje:
    -p numer_portu -f -k -v -s poziom_debugowania -l log_file
[klient] opcje (dla procesu KLIENT-a):
    -i poziom_kopresji -d numer_dispalya -u
[serwer] opcje (dla procesu SERWER-a):
    -D display
[połączenie] opcje:
    nazwa_hosta -w

OPIS
dxpc jest kompresorem protokołu X stworzonym w celu zwiększenia szybkości "transmisji" aplikacji X11 uruchamianych przez wolne łącza (np.: telefoniczne połączenia PPP).

dxpc musi być uruchomiony po obu stronach łącza. Na jednym z hostów - gdzie pracuje rzeczywisty X serwer - dxpc pracuje w trybie "serwera proxy", na drugim w trybie "klienta proxy". "Klient proxy" musi być uruchomiony jako pierwszy. W czasie startu "serwer proxy" nawiązuje połączenie z "klientem". (Zauważ, że wersje dxpc sprzed 3.3.1 używają odwrotnej konwencji.) Kiedy jeden z procesów dxpc jest przerywany, drugi automatycznie wyłącza się również.

"Klient proxy" naśladuje X-serwer. Aplikacje X-klienta łączą sie z "klientem proxy" używając displaya "unix:8" (lub <nazwa_hosta>:8 ; dxpc wspomaga zarówno domeny UNIX-owe jak i gniazda TCP). "Klient proxy" przechwytuje wywołania X-owe od aplikacji, kompresuje je i wysyła do "serwera proxy". "Serwer" dekompresuje je i przesyła do rzeczywistego serwera X. Podobnie "serwer proxy" otrzymuje zdarzenia, odpowiedzi i błędy od rzeczywistego X-serwera, kompresuje i przesyła do "klienta proxy", który po dekompresji śle je do aplikacji klienta.

Stopień kompresji dxpc zależy od typu aplikacji X-owej. Dla większości aplikacji dxpc uzyskuje wyniki kompresji od 3:1 do 6:1.

MODY PRACY
dxpc może pracować w jednym z dwóch stanów: stanie nawiązywania połączenia (nasłuchiwanie lub łączenie) i stanie pracy w Systemie X (klient lub serwer). Każda sesja pracy w dxpc zawsze zaczyna sie od stanu nawiązywnia połączenia po czym - jeżeli połączenie jest nawiązane - przechodzi do stanu pracy w Systemie X.

Nasłuchiwanie oczekuje na inicjację połączenia TCP - między dwoma procesami - przez łączenie. Nasłuchiwanie musi być zawsze uruchamiane jako pierwsze. Łączenie jest inicjatorem połączenie TCP z nasłuchiwaniem. dxpc startuje w trybie łączenia jeżeli podany jest argument nazwa_hosta (zobacz: opcje połączenie, powyżej). W innym przypadku startuje w trybie nasłuchiwania.

Proces serwera jest zwykle umiejscowiony na tej samej maszynie, na której pracuje rzeczywisty X-serwer i odpowiada za wyświetlanie aplikacji, proces klienta zaś na maszynie, gdzie jest uruchomiona aplikacja X i odpowiada on za przekazywanie wyniku pracy aplikacji do procesu serwera. Domyślna kolejność pracy dxpc jest następujaca: tryb nasłuchiwania, a po zestawieniu połączenia tryb klienta (jeżeli nie użyto argumentu nazwa_hosta) lub tryb łączenia, a po połączeniu tryb serwera. Opcja -w zmienia ta kolejność (tj.: nasłuchiwanie-serwer lub łączenie-klient).

Na przykład komenda dxpc host.w_pracy.com startuje dxpc w trybie łączenia (ponieważ jest użyty argument nazwa_hosta) i potem serwera (bo opcja -w nie zostala użyta). Komenda dxpc -w startuje dxpc w trybie nasłuchiwania (bo nie ma argumentu nazwa_hosta) i potem serwera (bo opcja -w zmienia standardowe wywolanie)

Opcje

-d numer_displaya
    Ustawia numer displaya, który dxpc imituje. Domyślnie dxpc przyjmuje wartość 8 (opcja ignorowna w trybie "serwer proxy").

-f  Powoduje powielenie się (forkowanie) dxpc i start jako daemon. Drukowanie komunikatów na wyjście standardowe (poza błędami) jest wstrzymane, statystyki również. Proces daemona może być wyłączony przez (kolejne) użycie dxpc z opcją fB-k.

-k  Powoduje przeczytanie numeru PID z pliku blokującego w katalogu domowym użytkownika (~/.dxpc.pid-HOST-USER-PORT) i przesłanie sygnału SIGKILL do pracującego procesu dxpc. Plik blokujący istnieje jedynie jeżeli dxpc zostało uruchomione z opcja -f.

-l log_file
    Z tą opcją dxpc zapisuje komunikaty i informacje statystyczne do pliku dziennika log_file. Opcja szczególnie użyteczna z -f.

-p numer_portu
    Ta opcja ustawia port TCP, który będzie używany do komunikacji między "klientem proxy" i "serwerem proxy". Wartość domyślna 4000.

-s(1|2)
    Wyświetla raport o poziomie kompresji. W trybie "klienta proxy" dxpc wypisuje raport o kompresji na podstawie komunikatów od X-klienta, w trybie "serwera proxy" na podstawie komunikatów X-serwera. Z opcją -s1 dxpc informuje o poziomie kompresji w postaci skróconej, z -s2 w postaci szczegółowej. Większości użytkowników z pewnością wystarczy opcja -s1.

-u -t
    Normalnie dxpc w trybie "klienta proxy" imituje display :8 (zarówno w przypadku gniazd TCP jak i domen UNIX-owych). Opcja -u zabrania dxpc używania domen UNIX-owych, a -t gniazd TCP. (Opcje są ignorowane w trybie "serwer proxy").

-v  dxpc z opcją -v wypisuje numer wersji, informacje o prawach autorskich i kończy pracę.

-w  Odwraca kolejność "sluchania" i "inicjowania" w stanie nawiązywania połączenia. Oznacza to, że klient będzie inicjował połączenia z serwerem. W miejsce komend uruchamiających: klienta dxpc -f i serwera dxpc -f serwer.w_pracy.com można użyć: dxpc -w -f serwer.w_domu.priv - start klienta i dxpc -w -f - start serwera. Opcja -w jest użyteczna dla startu "klienta proxy" za firewallem.

nazwa_hosta
    Argument nazwa_hosta musi być użyty w trybie "serwera proxy" w celu identyfikacji maszyny (po nazwie bądź po adresie IP), na której uruchomiony jest dxpc w trybie "klienta proxy". (Obecność tego argumentu implikuje start w trybie "serwera proxy", jego brak w trybie "klienta proxy").

-D display
    Ustawia (display) hosta, na który przesyłane będą aplikacje X. Domyślnie jest to zmienna środowiska DISPLAY.

-i(0..9|99|999)
    Kontrola kompresji bitmap. (Opcja -i może być używana na kliencie albo - jeżeli podano opcje -w - na serwerze, w pozostałych przypadkach jest ignorowana.) Numer odpowiada za poziom kompresji; wyższe poziomy dają lepszą kompresję ale kosztem CPU i pamięci (głównie na "kliencie proxy"). Aktulna lista poziomów i typów kompresji jest podana ponizej. 0 : Bez kompresji (oprócz dxpc 3.7.0, gdzie daje bardzo słabą kompresję). 1 : kompresja LZO lzo1x_1; bardzo szybka, małe zużycie CPU, rozsądny poziom kompresji. 2-9: kompresja LZO wariant lzo1c_n . lzo1c_2 wydaje sie być gorsza niż lzo1x_1. 99: kompresja LZO lzo1c_99. Wolna ale bardzo dobra kompresja. Zanotowano niespodziewane błędy. Nie zalecana. 999: kompresja LZO lzo1x_999. Wolna (ale wystarczająco szybka dla połączeń 128k ISDN, przy korzystaniu z Pentium II/300 nie używa - nawet chwilowo - pełnej mocy procesora). Wartość domyślna i zalecana.

PRZYKŁADY
W przypadku użycia rzeczywistego X-serwera na lokalnej maszynie (pc_w_domu) i korzystania z aplikacji na zdalnym systemie (serwer.praca.com) wyświetlanych na lokalnej maszynie.

Na zdalnej maszynie serwer.praca.com
    $ export DISPLAY=pc_w_domu:0 (sh lub bash)
lub $ setenv DISPLAY pc_w_domu:0 (csh lub tcsh)
    $ dxpc -f
    $ export DISPLAY=unix:8      (sh lub bash)
lub $ setenv DISPLAY unix:8      (csh lub tcsh)
Na lokalnej maszynie
    $ export DISPLAY=unix:0      (sh lub bash)
lub $ setenv DISPLAY unix:0      (csh lub tcsh)
    $ dxpc -f serwer.praca.com
Teraz znów na zdalnej maszynie
    $ xterm&
    $ xemacs&
    itd...

DXPC I XAUTH
Jeżeli używasz autoryzacji X z plikiem .Xauthority na lokalnej maszynie, gdzie pracuje rzeczywisty X-serwer powinieneś dostosować plik .Xauthority na maszynie, gdzie dxpc jest uruchomione w trybie "klienta proxy". Jedną z dróg do tego prowadzących jest:
 .sp Skopiowanie pliku ~/.Xauthority z lokalnej maszyny na zdalną (gdzie jest "klient proxy").
 .sp Wydanie polecenia
    $ xauth list
w celu obejrzenia kluczy autoryzacyjnych. Jedna z linijek w wydruku powinna zawierać Twój display X i wyglądać podobnie do:
    <Twoj_host>/unix:0   MIT-MAGIC-COOKIE-1   <HEX>
Na maszynie, na której pracuje "klient proxy" należy "dodać" tę linię do pliku .Xauthority, ale z "oszukanym" X-displayem (DISPLAY z serwera, gdzie "klient proxy" nasłuchuje). Opcja "add" komendy xauth realizuje to następująco
    $ xauth add <host>/unix:8 MIT-MAGIC-COOKIE-1  <HEX>
gdzie <host> jest nazwą maszyny, gdzie jest uruchomiony "klient proxy". Po wykonaniu tego polecenia powinno być możliwe bezproblemowe używanie dxpc.

Uwaga: W przypadku połączeń przez slogin (ssh) wydruk z komendy
    $ xauth list
może być inny. Warto przed podaniem w/w komendy skorzystać z
    $ echo $DISPLAY

AUTOR
Brian Pane

POMOC
Kevin Vigor (kevin@vigor.nu)

PODZIĘKOWANIA
dxpc zaadoptowało wiele koncepcji z systemu HBX i FHBX
 (http://www.cs.dartmouth.edu/~jmd/decs/DECSpage.html).

Dziekuję wszystkim użytkownikom, którzy przesyłali sugestie i uwagi.

ZOBACZ TAKŻE
xauth(1), plik README z dytrybucji dxpc.

OD TŁUMACZA
Dodano kilka słów w sekcji PRZYKŁADY.