Eine der Eigenschaften, die alle Unix-Systeme verbindet, ist die Möglichkeit, über das X Window System grafische Anwendungen auf einem anderen Rechner als dem Arbeitsrechner laufen zu lassen, dieses Programm aber wie eine lokal installierte Anwendung einzusetzen. Viele Anwender (auch in einem Linux-Netzwerk) nutzen dieses Feature eher selten oder gar nicht, lässt sich doch eine gewünschte Anwendung auch lokal installieren.
Was ist aber, wenn der Arbeitsplatz-PC unter Windows laufen muss? Linux-Programme können hier nicht installiert werden, und Windows beherrscht auch das X-Window-Protokoll nicht. Gleiche mehrere X-Server für Windows schaffen hier Abhilfe. Neben dem Ausführen von Linux-Programmen von einem Linux-Rechner haben Windows-Anwender damit auch die Möglichkeit, nativ für Windows kompilierte X-Anwendungen laufen zu lassen. Wir haben uns die Produkte angesehen, die für aktuelle Windows-Versionen verfügbar sind. Zum Vergleich angetreten sind XFree86 4.2, Humbingbird Exceed 7.1 und Omni-X 6.21.
Für die Tests haben wir einen "Client" mit Pentium-IV/1600 und 256 MB RAM unter Windows XP Home und einen "Server" mit Dual-Pentium-III/500 und 512 MB Hauptspeicher unter Mandrake Linux 8.0 verwendet, die über ein 100-MBit-Netzwerk verbunden waren.
Wer mit Linux in erster Linie auf freie Software setzt, wird sich darüber freuen, dass der dortige Standard-X-Server, XFree86, auch unter Windows verfügbar ist. Um die portierten XFree86-Pakete zum Laufen zu bringen, muss auch die Cygwin-Umgebung installiert werden, die portierte Versionen der wichtigsten GNU-Tools und -Libraries enthält. Deren Installation ist ohnehin sinnvoll, da mit Cygwin unter anderem die Bash, ssh und andere nützliche Anwendungen wie wget und lynx Einzug in die Fensterwelt halten.
Um Cygwin und XFree86 unter Windows zu installieren, ist es am einfachsten, den Installations-Link auf der Red-Hat-Web-Seite http://cygwin.com/setup.exe zu verwenden. Dahinter versteckt sich ein Windows-typisches Installationsprogramm, über das sich alle Cygwin-Programmteile und auch der X-Server installieren lassen.
Ist die Software installiert, lässt sich über einen neuen Startmenü-Eintrag die Bash-Shell starten; von hier aus kann - wie unter Linux gewohnt - über den Befehl startx der X-Server gestartet werden. Eventuell ist das XFree86-Verzeichnis /usr/X11R6/bin nicht in den Pfad eingetragen, was aber wie üblich durch Anpassen der Variable PATH geändert werden kann. Im Home-Verzeichnis kann auch die Datei .bashrc angelegt werden - sie wird beim Bash-Start ausgeführt.
Die gesamte X-Sitzung läuft in einem separaten Fenster (siehe Abbildung 2) - so bleiben X-Anwendungen strikt von Windows-Fenstern getrennt. Die Größe des X-Fensters kann übrigens (ähnlich wie beim Start eines zweiten X-Servers unter Linux, der im Fenster läuft; Xnest) angepasst werden.
Die Zwischenablagen von XFree86 und Windows sind getrennt: Ein systemübergreifendes Copy & Paste ist hier also nicht möglich. Wer darauf Wert legt, muss zu einer der weiter unten besprochenen kommerziellen X-Server-Varianten greifen, die auch unter anderen Gesichtspunkten bessere Integration in die Windows-Umgebung bieten. Auch wenn Sie den eigentlichen Hauptbestandteil von XFree86, den X-Server, nicht verwenden wollen, sind die restlichen Bestandteile interessant. Zum Einen wird die Arbeit mit einem Windows-Rechner deutlich angenehmer, wenn die aus der Unix-Welt bekannten Kommandozeilen-Tools und eine Shell, die diesen Namen verdient, installiert sind - zum Anderen enthält XFree86 viele nützliche X-Applikationen, die dann (mit einem beliebigen X-Server) nativ auf dem Windows-Rechner ausgeführt werden können.
XFree86 bietet Software-seitig GLX-Unterstützung: Einfache Programme, die 3D-Routinen verwenden, können somit ausgeführt werden, zum Beispiel läuft das Benchmark-Programm glxgears. Für Programme, die 3D-Hardware-Beschleunigung benötigten (etwa tuxracer) reicht die Leistung aber nicht - dabei hilft auch eine von Windows unterstützte 3D-Grafikkarte nicht.
Angenehm ist, dass XFree86 Scrollräder unterstützt, wenn diese unter Windows funktionieren. Bei VNC, einer alternativen Lösung, mit der sich X-Anwendungen auf den Windows-Desktop holen lassen, ist dies nicht der Fall.
Das xterm aus dem XFree86-Paket kann noch für einen anderen Zweck benutzt werden: Wenn man seine Ausgabe über "-display …" an den Linux-Rechner schickt, hat man dort ein Terminal-Fenster, aus dem heraus sich der Windows-Rechner steuern lässt. Bei Bedarf kann darin sogar eine Windows-Shell (command.com oder cmd.exe) gestartet werden.
Unter Windows XP war zunächst ein wenig Anpassung notwendig, um die Installationsroutine starten zu können: Bei einem normalen Aufruf von msetup.exe erschien lediglich ein Bildschirm mit einem Exceed-Logo, und nichts weiter geschah. Nach Aufruf des Eigenschaften-Dialogs, Seite Kompatibilität und Wechsel in den Kompatibilitätsmodus für Windows 2000 ging es dann aber los. Nach Rückfrage bei Hummingbird gibt es einen Patch, der dieses Problem abstellt - die jeweils aktuellsten Download-Versionen (die ganz neue Version 8 ist noch nicht erhältlich) kommen ohnehin problemlos mit XP klar. Als Installationstyp wählten wir Personal Installation; als Setup-Typ Standard, was für neue Anwender empfohlen wird.
Nach dem Übertragen stellt das Installationsprogramm noch einige Fragen, unter anderem nach einem Administratorpasswort. Wird der PC nur von einem Anwender benutzt, kann dies leer gelassen werden: Es geht nur um Einstellungen zu X Window. Nützlich ist hingegen, die Performance zu optimieren: Exceed führt dazu einen Benchmark aus.
Nach der Installation lässt sich Exceed über den Menüpunkt Hummingbird Connectivity v7.1/Exceed/Exceed aktivieren. Es erscheint nur eine kleine Icon-Leiste, die sich per Drag & Drop an einen der Bildschirmränder ziehen lässt. Ein Klick auf das erste Icon in dieser Leiste startet die X-Session - davon bemerkt man aber nichts, da X-Window-Fenster in den Windows-Desktop integriert werden.
Wie kommt nun das erste X-Fenster auf den Windows-Bildschirm? Wer auch die weiter oben beschriebenen Cygwin-Tools und XFree86 für Windows installiert hat, kann einfach das dort enthaltene xterm aus einer Cygwin-Shell starten. Von dort kann man sich dann bequem per ssh auf dem Linux-Rechner der Wahl anmelden, dort die DISPLAY-Variable prüfen und gegebenenfalls richtig setzen (export DISPLAY=windowsmaschine:0) und dann beliebige X-Programme starten.
Exceed bietet einige Features, die den Aufruf von X-Anwendungen auf entfernten Maschinen einfacher machen sollen - leider basieren diese alle auf nicht-verschlüsselnden Protokollen (rexec, rsh, rlogin und telnet) - ssh wird hier nicht unterstützt. (Es gibt allerdings ein Zusatzpaket zu Exceed, das entsprechende Features für ssh ergänzt.) Wenn Sie diese Möglichkeit nutzen wollen, müssen Sie auf dem Linux-Rechner die entsprechenden "R-Dienste" aktivieren - bei aktuellen Distributionen sind sie abgeschaltet.
Eine schöne Alternative zum Start einer vollständigen X-Session von einem entfernten Linux-Rechner bietet sich, wenn dort XDMCP aktiviert ist. Dazu müssen folgende Bedingungen erfüllt sein:
DisplayManager.requestPort: 0
durch Voranstellen eines Ausrufezeichens auskommentiert werden, falls es sie gibt: Das ist z. B. bei SuSE Linux der Fall; bei Mandrake Linux gibt es sie dagegen nicht.
@L: * # any host can get a login window
Enable=False
gesetzt ist, muss "False" durch "True" ersetzt werden.
Nach diesen Änderungen und einem Neustart des X-Login-Managers (z. B.: killall kdm; kdm) kann dann ein Kontaktversuch gestartet werden.
Mit KDE arbeitet Exceed nicht optimal zusammen: Der KDE-Desktop verdeckt den Windows-Desktop, so dass kein Zugriff mehr auf die Windows-Icons möglich ist - auch beim Anordnen der Fenster kann es Probleme geben. Ein Test mit dem Window Manager icewm verlief dagegen sehr erfolgreich.
Der Umgang mit Window Managern ist unter Exceed gut gelöst: Bei einem Login über XDMCP wird in der Regel automatisch ein Window Manager gestartet - die X-Fenster haben dann die vom Window Manager erzeugten Rahmen und sind so deutlich von Windows-Fenstern zu unterscheiden (wenn nicht gerade der fvwm95 gewählt wurde, der ja genau die Windows-Darstellung imitiert). Meldet man sich stattdessen nicht über XDMCP an und startet wie zuvor beschrieben nur eine einzelne X-Anwendung, dann läuft kein Window Manager, und Exceed erzeugt einen Windows-Rahmen um das Fenster, damit es sich wie üblich verschieben, schließen oder in der Größe verändern lässt. Zudem enthält Exceed noch einen eigenen Window Manager (der im Menü unter Programme/Hummingbird.../Exceed/Tools/HWM für Hummingbird Window Manager versteckt ist). Dieser ist aber sehr rudimentär und an den Motif Window Manager mwm angelehnt.
Wer den Windows-Rechner nicht ausschließlich zum Ausführen von Linux-Anwendungen benutzen will (und dann besser direkt Linux installieren könnte), wird sich über die gelungene Integration von Windows- und X-Fenstern freuen: Diese können sich überlappen, so dass die Grenzen zwischen den verschiedenen Welten verwischen.
Windows kennt ja, anders als Linux und andere Unix-Systeme, nicht das Konzept der virtuellen Desktops. Mit Exceed findet es auch in die Windows-Welt Einzug, und zwar gleich in zwei Varianten:
Drag & Drop zwischen X-Anwendungen funktioniert so, wie man es von Linux gewohnt ist: Text wird einfach mit der linken Maustaste in einem Fenster markiert und dann in einem anderen durch Drücken der mittleren Maustaste eingefügt. Gleichzeitig wird diese X-Zwischenablage aber auch mit der Windows-Zwischenablage synchronisiert, so dass Text sich schnell in beiden Richtungen zwischen Windows- und X-Anwendungen austauschen lässt.
Klappt dies einmal nicht automatisch, stehen in der Symbolleiste mehrere Icons bereit, die den Abgleich erzwingen. Um heraus zu finden, welches Icon welche Funktion hat, kann man einfach einen Moment über den Icons verharren - es erscheint dann eine Kurzhilfe, die die Funktion beschreibt.
Exceed kann auch ein Mausrad unterstützen und X-konform die ButtonPress- und ButtonRelease-Ereignisse für die Maustasten 4 und 5 erzeugen. Diese Funktion muss aber zunächst aktiviert werden: Im Konfigurationsprogramm (das über Programme/Hummingbird.../Exceed/Xconfig gestartet wird) wählt man dazu das Icon Mauseingabe aus und aktiviert im erscheinenden Dialog die Option Radbewegung sendet Maustastenereignis (Taste 4/5). Wer seinen X-Server unter Linux anders als für die Tasten 4 und 5 konfiguriert hat, kann die Tastennummern auch anpassen.
Omni-X lag zum Test nur als Evaluationsversion vor. Bei der Installation muss man die Seriennummer- und Passwortabfrage überspringen und im anschließenden Dialog bestätigen, dass man die Software nur testen will. Danach läuft die restliche Einrichtung per InstallShield in der unter Windows üblichen Weise ab.
Gestartet wird der frisch installierte X-Server dann über den Menüpunkt Start/Programme/Omni-X V6.21/PC-X Server. Standardmäßig läuft der X-Server dann im Full-Screen-Mode, öffnet also (wie XFree86) einen X-Desktop in einem Fenster, in dem sich dann die gesamte X-Sitzung abspielt. Über das Konfigurationsprogramm kann dies aber geändert werden (Option WinMode), so dass auch Omni-X separate Fenster für jede X-Applikation erzeugt. Auf die Verwendung eines X Window Managers sollte dabei aber verwendet werden, da Omni-X in jedem Fall einen klassischen Windows-Fensterrahmen erzeugt: Wird zusätzlich ein Window Manager benutzt, hat jedes X-Fenster einen doppelten Rahmen (siehe Abbildung 10). Interessanterweise werden neue Fenster, die erst nach dem Start des Window Managers geöffnet werden, ohne dessen Rahmen angezeigt. Man sollte beim Beginn der X-Session also sicherstellen, dass keine X-Fenster vor dem Window Manager geöffnet werden. Störende Rahmen um eigentlich rahmenlose Fenster wie das Panel und den Pager von XFce wird man so allerdings nicht los.
Die Tastatur ist zunächst mit einer englischen Belegung ausgestattet. Vorsicht: Während man bei XFree86 problemlos mit
xmodmap …/xmodmap.de
eine deutsche Tastenbelegung einstellen kann, führt dies bei Omni-X dazu, dass die X-Session nicht mehr bedienbar ist. Hier führt der Weg über das Konfigurations-Tool, das unter keyboard die Einstellung der Tastaturbelegung erlaubt. Danach funktioniert das deutsche Keyboard recht gut; allerdings sind einige Sonderzeichen nicht zu erreichen, darunter auch der Backslash, was die Arbeit doch deutlich erschwert. Offenbar ist dieser X-Server nicht umfassender in einer deutschsprachigen Umgebung getestet worden.
Ähnlich wie Exceed, kann auch Omni-X so konfiguriert werden, dass er per XDMCP eine Session auf einem entfernten Rechner beginnt, und über eine Anwendung namens XOpen können per rexec, rsh oder telnet direkt Programme auf Unix-Maschinen gestartet werden. Auch hier werden keine verschlüsselnden Protokolle unterstützt.
XFree86 und Cygwin sind für Windows gratis erhältlich; sie unterliegen den gleichen freien Lizenzen wie ihre Linux-Pendants. Bei Exceed und Omni-X handelt es sich dagegen um kommerzielle Software, und die Preise der Produkte sind hoch: So liegt der Preis für Exceed (bei LinuxLand, http://www.linuxland.de) beispielsweise bei 474,47 Euro; eine deutlich billigere Studentenversion ist für 149,- Euro beim Academic Softwarehouse, http://academic.softwarehouse.de/, erhältlich. Omni-X ist beim Hersteller X-Link (http://www.xlink.com/) für 135 US-$ als Download-Version erhältlich. Databit (http://www.databit.de/) listet Omni-X auch auf, nennt aber keinen Preis. Beide kommerziellen Produkte gibt es als Evaluationsversionen, von Exceed finden Sie die aktuelle Version 8.0 auf der Heft-CD.
Mit allen drei Produkten wird Ihr Windows-Rechner zum X-Terminal. Bis auf die Tastaturbelegung bei Omni-X gibt es mit allen Kandidaten wenig Probleme. XFree86 ist als freie Software die richtige Wahl für alle, die aus ideologischen oder Preisgründen auch auf Linux setzen. Wer mehr Komfort und eine gelungene Desktop-Integration wünscht, setzt auf Exceed oder X-Link - das teurere Produkt (Exceed) ist dabei auch das bessere.