X Window Server zum Ausführen von GUI-Tools

X Window Server zum Ausführen von GUI-Tools

Wir sind ein Software-Shop, der viel Java-Code schreibt. Die meisten unserer Java-App-Server sind CentOS-Boxen, die in einem Remote-Rechenzentrum gehostet werden.

Immer wenn wir auf diese Maschinen zugreifen und sie durchsuchen müssen, verwenden wir PuTTY.

Ich wurde kürzlich gebeten, unsere JVM mit dem Memory Profiler zu überwachen jvisualvm, einem umfangreichen GUI-Tool, das viele Grafiken und Diagramme mit hübschen Farben verwendet. Als ich meinen technischen Leiter fragte, wie ich ein solches GUI-Tool über ein zeichenbasiertes Befehlstool wie PuTTY anzeigen könnte, sagte er mir, ich solle stattdessen etwas namens Reflection X verwenden.

Dies veranlasste mich dazu, mich über Reflection X und X Windows im Allgemeinen zu informieren (mit denen ich nie Kontakt hatte).

Ich verstehe jetzt, dass „X“ eine Hardware-Abstraktionsschicht ist, sodass Sie GUI-orientierten Code schreiben und ihn auf jeder Hardware bereitstellen können, auf der X ausgeführt werden kann. In dieser Hinsicht ist es (thematisch) identisch mit der Java Virtual Machine.

Was ich binnichtWas ich verstehen muss, ist die Beziehung zwischen meinem Windows-PC, Reflection X, der CentOS-Maschine, auf der die App läuft, die ich profilieren muss, und dem jvisualvmTool selbst:Wer macht was?

Läuft Reflection X auf meinem Rechner oder ist es auf dem Linux-Server installiert? Was ermöglicht mir Reflection X die Fernanzeige jvisualvm?

Dank im Voraus!

Antwort1

Das Programm jvisualvm wird meistens auf Ihrer CentOS-Box ausgeführt. Auf dieser Box läuft der X-Server-Host und Reflection X ist nur ein X-Server-Client. Das bedeutet, dass Sie im Wesentlichen einen ferngesteuerten Desktop ausführen. Alles, was Ihr Windows-Rechner mit Reflection X tut, ist, sich mit der CentOS-Box zu verbinden, damit Sie die dort laufenden Apps sehen und mit ihnen interagieren können.

Antwort2

X unterscheidet sich sehr von Java. Es ist keine VM, keine Hardware-Abstraktionsschicht oder ähnliches – es ist eineNetzwerkprotokoll, derzeit in der Version X11, die Programme zur Kommunikation mit einem X11-Server verwenden. Solche Programme können praktisch in jeder Sprache geschrieben werden, solange sie über die erforderlichen Funktionen verfügt.

DerX11-Serverläuft normalerweise auf Ihrem eigenen Computer und führt die Aufgabe aus, Grafiken auf dem Bildschirm anzuzeigen und Tastatur- und Mausereignisse an die Programme zurückzusenden. Programme (X11-Clients) stellen lokal über solche IPC-Methoden (Unix-Sockets) oder über das Netzwerk eine Verbindung damit her – über direktes TCP/IP (selten) oder getunnelt innerhalb einer SSH-Verbindung (die Option „X11-Weiterleitung“ in PuTTY).

Reflexion Xist ein kommerzieller X11-Server für Windows. Open-Source-Alternativen sindCygwin/X(eine Portierung von Xorg) sowieXming. Fast jeder Linux- oder BSD-PC läuftXorgals Hauptgrafiksystem.

Wenn Sie Reflection X auf Ihrem Computer ausführen, wartet es einfach auf Verbindungen. Wenn Sie es auf der CentOS-Maschine ausführen jvisualvm, stellt der Profiler eine Verbindung zum X11-Server her (getunnelt über dieselbe SSH-Verbindung, die PuTTY verwendet) und verwendet das X11-Protokoll, um ein Fenster zu öffnen und darin zu zeichnen.

Antwort3

  • Reflection X scheint ein X-Server zu sein, der unter MS Windows läuft. Eine kostenlose Alternative wäreXming
  • X-Server bedienen GUI-Client-Anfragen und zeigen sie auf dem Host-Rechner an, auf dem der X-Server läuft.
  • Auf Ihrer Linux-Box müssen Sie DISPLAY so einstellen, dass es auf Ihren X-Server verweist, sobald dieser auf Ihrem Windows-Rechner läuft. Anschließend können Sie die GUI-App von Ihrem Linux-Server aus starten und sie wird auf Ihrem Windows-Desktop angezeigt.

Schick, oder?

Wenn es sich bei der Linux-Box um eine VMware-VM handelt, können Sie alternativ VMware-Tools installieren und deren Unity-App verwenden, um etwas Ähnliches zu tun.

verwandte Informationen