GUIツールを実行するためのX Window Server

GUIツールを実行するためのX Window Server

当社は、Java コードを大量に作成するソフトウェア ショップです。当社の Java アプリケーション サーバーのほとんどは、リモート データ センターでホストされている CentOS ボックスです。

これらのマシンにアクセスして調べる必要があるときはいつでも、PuTTY を使用します。

最近、メモリ プロファイラを使用して JVM を監視するように依頼されましたjvisualvm。メモリ プロファイラは、きれいな色で多くのグラフやチャートを使用する機能豊富な GUI ツールです。技術リーダーに、PuTTY などの文字ベースのコマンド ツールではなく、このような GUI ツールを表示するにはどうすればよいかと尋ねたところ、代わりに Reflection X と呼ばれるものを使用するように言われました。

これをきっかけに、Reflection X と X Windows 全般について調べてみることにしました (これまでこれらについてはまったく触れたことがありませんでした)。

「X」はハードウェア抽象化レイヤーであり、GUI 指向のコードを記述して、X が実行できる任意のハードウェアに展開できるということが分かりました。この点では、X は Java 仮想マシンと (テーマ的には) 同一です。

私が何者かない理解すべきことは、Windows PC、Reflection X、プロファイルする必要があるアプリを実行している CentOS マシン、およびツール自体の関係ですjvisualvm誰が何をしているのですか?

jvisualvmReflection X は私のマシン上で実行されますか、それとも Linux サーバーにインストールされますか? Reflection X でリモート表示が可能になるのはなぜですか?

前もって感謝します!

答え1

jvisualvm プログラムは、ほとんどの場合、CentOS ボックスで実行されます。このボックスでは、X サーバー ホストが実行されており、Reflection X は単なる X サーバー クライアントです。つまり、基本的にはリモート制御のデスクトップを実行していることになります。Windows マシンが Reflection X で行っているのは、CentOS ボックスに接続して、そこで実行されているアプリを表示したり操作したりできるようにすることです。

答え2

XはJavaとは全く異なります。VMやハードウェア抽象化レイヤーなどではなく、ネットワークプロトコル現在はバージョン X11 であり、プログラムはこれを使用して X11 サーバーと通信します。このようなプログラムは、必要な機能があれば、実質的にどの言語でも記述できます。

X11 サーバー通常、自分のマシン上で実行され、画面にグラフィックを表示し、キーボードとマウスのイベントをプログラムに送り返すという作業を実行します。プログラム (X11 クライアント) は、IPC メソッド (Unix ソケット) を使用してローカルに接続するか、直接 TCP/IP を使用する (まれ) か、SSH 接続内でトンネル化 (PuTTY の「X11 転送」オプション) してネットワーク経由で接続します。

リフレクションXはWindows用の商用X11サーバーです。オープンソースの代替品としては、Cygwin/X(Xorgの移植版)、そしてXmingほぼすべてのLinuxまたはBSD PCはXorgメインのグラフィック システムとして使用します。

Reflection X をコンピュータで実行すると、接続を待つだけです。CentOSjvisualvmマシンで実行すると、プロファイラは X11 サーバーに接続し (PuTTY が使用しているのと同じ SSH 接続を介してトンネルされます)、X11 プロトコルを使用してウィンドウを開き、その中に描画します。

答え3

  • Reflection XはMS Windowsで動作するXサーバのようです。無料の代替品としてはXming
  • X-ServerはGUIクライアントのリクエストに応え、X-Serverを実行しているホストマシンに表示します。
  • Linux ボックスでは、Windows マシンで X-Server が起動して実行されたら、DISPLAY を X-Server を指すように設定する必要があります。その後、Linux サーバー内から GUI アプリを起動すると、Windows デスクトップに表示されます。

気の利いたことでしょ?

あるいは、Linux ボックスが VMware VM である場合は、VMware ツールをインストールし、Unity アプリを使用して同様の操作を実行できます。

関連情報