Mittels X11 Anwendungen auf anderen Rechnern ausf�hren

ArticleCategory: [Choose a category, do not translate this]

UNIX Basics

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to de Hermann J. Beckers

AboutTheAuthor:[A small biography about the author]

Guido mag Linux nicht nur, weil es interessant ist, zu verstehen, wie Betriebssysteme arbeiten, sondern auch wegen der Menschen, die an der Entwicklung von Linux beteiligt sind.

Abstract:[Here you write a little summary]

Viele Linux-Erstbenutzer/innen denken, dass die grafische Oberfl�che unter Linux nur ein weiteres "Windows"-System ist, in dem man Anwendungen startet, die dann in eigenen Fenstern erscheinen. Einigen f�llt auf, dass man verschiedene Oberfl�chen benutzen kann, aber das scheint es auch schon gewesen zu sein. Das Linux X-Window-System (X11) ist viel mehr als das! Es ist ein Netzwerk-f�higes Window-System. Wir werden sehen, welche neuen und m�chtigen M�glichkeiten es bietet.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Das Display-Konzept

Jede grafische X-Window-Anwendung liest beim Start die Umgebungsvariable DISPLAY aus, um festzustellen, an welchen Computerbildschirm die Grafik-Daten geschickt werden sollen. Dies erlaubt es in Verbindung mit den Netzwerkf�higkeiten des X-Window-Systems, grafische Anwendungen auf entfernten Rechnern zu starten. Das hei�t, Sie nutzen die CPU-Leistung einer Maschine, w�hrend Sie die Anwendung von einer anderen Maschine aus steuern. Das vollst�ndige GUI (grafische Benutzungsoberfl�che) wird auf der Maschine dargestellt, von der aus Sie die Anwendung benutzen. Sie bemerken nicht, dass Sie 2 Computer benutzen.
Die Netzwerkgeschwindigkeit hat nat�rlich einen Einflu�, aber eine normale 10 Mbit/s LAN-Verbindung ist mehr als genug.


[run in an application remote]

Warum sollten Sie das tun?
Es gibt viele Anwendungen dieser "Netzwerk-Grafikprogramme". Firmen benutzen sie, um Ger�te fernzusteuern, die Tausende von Kilometern entfernt sind und Sie k�nnen die gleiche Anwendung zur Steuerung benutzen, als ob Sie direkt vor Ort w�ren.
Vielleicht haben Sie 2 Computer, eine schnelle 1 Ghz-Maschine und einen alten Pentium 133 Mhz. Sie k�nnen sich an der Geschwindigkeit Ihres neuen Rechners erfreuen, obwohl Sie nicht direkt davor sitzen. Vielleicht sitzt gerade Ihre Schwester vor dem schnellen Rechner und ist angemeldet. Das macht nichts, Sie profitieren trotzdem davon.
[display] Wie funktioniert das?
Alle X-Window-Anwendungen, m�gen sie nun gimp, xterm, konqueror, netscape ... heissen, sind eigentlich Netzwerk-Clients, die sich mit einem Server, dem X-Server, verbinden. Aufgabe des X-Servers ist es, mit der Grafik-Hardware zu sprechen, die Bilder auf Ihrem Monitor zu zeichnen sowie die Maus- und Tastatur-Eingaben zu lesen. Die Clients (Ihre Programme wie gimp, netscape...) senden dem Server Anweisungen, wie er die Rahmen und Buttons zu zeichnen hat. Im Austausch erhalten sie vom Server die Maus- und Tastatur-Ereignisse �bermittelt. Offensichtlich ben�tigen Sie eine Authentifizierung, weil sonst jedermann den Bildschirm von jedem anderen durcheinander bringen k�nnte. Es gibt zwei Programme zur Zugriffskontrolle:
- xhost: mittels dieses Programms k�nnen Sie jeder Benutzerin auf einer beliebigen Maschine erlauben, Grafikdaten auf Ihrem Monitor anzuzeigen. Beispiel: Sie sitzen vor einem Rechner namens philosophus. Um jedem Programm auf dem Rechner movietux Zugriff auf Ihr Display auf philosophus zu gestatten, w�rden Sie folgenden Befehl eingeben:

xhost +movietux
Dies muss in einer Shell auf philosophus eingegeben werden.


- xauth: Dies ist eine Cookie-basierende Authentifizierung und sehr viel m�chtiger. Hier k�nnen Sie wirklich einzelnen Personen Zugriff gestatten. Es ist viel sicherer als xhost. Die Authentifizierung benutzt ein Cookie, das in der Datei .Xauthority im Startverzeichnis des Benutzers gespeichert wird. Wenn der entfernte Rechner ein g�ltiges Cookie in dieser Datei hat, wird Zugriff gew�hrt. Um das Cookie von der Maschine, vor der Sie sitzen (philosophus), auf den Rechner zu kopieren, auf dem Sie das Programm starten wollen (movietux), k�nnen Sie eine der beiden folgenden Methoden benutzen:

xauth extract - philosophus:0.0 | ssh movietux /usr/X11R6/bin/xauth merge
oder
scp ~/.Xauthority movietux:


Die Prozedur, die beim Start eines Programms (Client) abl�uft, ist folgende:
  1. Der Client �berpr�ft die DISPLAY-Umgebungsvariable, um den Server zu finden, andernfalls wird versucht, den Server auf diesem Rechner zu erreichen.
  2. Der Server �berpr�ft, ob der Client berechtigt ist, "Bilder" an ihn zu senden. Wenn der Client autorisiert ist, dann zeichnet der Server das Bild auf den Monitor.
Die DISPLAY-Umgebungsvariable hat folgende Syntax:

bash:export DISPLAY=hostname:displaynumber.screennumber
tcsh:setenv DISPLAY hostname:displaynumber.screennumber

Ich werde hier nicht �ber die Display- und Bildschirm-Nummer sprechen. Dies ist normalerweise einfach 0:0. Ein Beispiel f�r die bash-Shell w�re:

export DISPLAY=philosophus:0.0

Eine Anwendung auf einem entfernten Rechner starten

Nach der ganzen Theorie nun ein praktisches Beispiel. Versuchen Sie es einfach. Wir sitzen wieder an dem Computer philosophus und m�chten etwas von dem Rechner movietux starten.
  1. Erz�hlen Sie Ihrem X-Server, dass Clients von movietux berechtigt sind, Bilder auf Ihrem Bildschirm zu zeichnen:
    xhost +movietux
  2. Melden Sie sich am Rechner movietux an:
    slogin -l username movietux
  3. Nun sind Sie am Rechner movietux angemeldet und jeder Befehl, den Sie starten, wird auf movietux ausgef�hrt
  4. export DISPLAY=philosophus:0.0
  5. Starten Sie das Programm, z. B.
    netscape &
Falls movietux eine m�chtige Maschine ist, werden Sie bemerken, dass die Wiedergabe von html-Seiten in Netscape um einiges schneller ist als wenn Sie Netscape auf Ihrem lokalen Rechner starten w�rden. Zur gleichen Zeit werden Sie unter Benutzungsgesichtspunkten kaum bemerken, dass dieser Netscape nicht lokal gestartet wurde, weil Sie ihn in der gleichen Weise mit Maus und Tastatur steuern.
Sch�ne Sache, nicht wahr?

Wie Sie Ihr Display mitnehmen

Obwohl es sehr einfach ist, eine Anwendung entfernt auszuf�hren, ist immer noch eine zus�tzliche Eingabe erforderlich, um die DISPLAY-Variable zu setzen. Es ist m�glich, dies zu automatisieren: