用於執行 GUI 工具的 X Window Server

用於執行 GUI 工具的 X Window Server

我們是一家編寫大量 Java 程式碼的軟體商店。我們的大多數 Java 應用程式伺服器都是託管在遠端資料中心的 CentOS 機器。

每當我們需要進入這些機器並進行篩選時,我們都會使用 PuTTY。

最近,我被要求使用jvisualvm記憶體分析器來監視我們的 JVM,這是一個豐富的 GUI 工具,使用大量顏色漂亮的圖形和圖表。當我問我的技術主管如何透過像 PuTTY 這樣基於字元的命令工具來查看這樣的 GUI 工具時,他告訴我改用一種稱為 Reflection X 的東西。

這促使我閱讀 Reflection X 和 X Windows 的一般知識(我從未接觸過)。

我現在明白“X”是一個硬體抽象層,這樣您就可以編寫面向 GUI 的程式碼並將其部署在 X 可以運行的任何硬體上。透過這種方式,它與 Java 虛擬機器(在主題上)相同。

我是什麼不是理解是我的 Windows PC、Reflection X、運行我必須分析的應用程式的 CentOS 電腦以及jvisualvm工具本身之間的關係:誰在做什麼?

Reflection X 是在我的機器上運行,還是安裝在 Linux 伺服器上? Reflection X 的哪些功能可以讓我jvisualvm遠端查看?

先致謝!

答案1

jvisualvm 程式大多數情況下只在 CentOS 機器上執行。在這個盒子上,運行著X Server Host,而Reflection X只是一個X Server客戶端。這意味著您實際上正在運行遠端控制桌面。您的 Windows 機器使用 Reflection X 所做的所有事情就是連接到 CentOS 盒子,以便您可以查看其中運行的應用程式並與之互動。

答案2

X 與 Java 有很大不同。它不是虛擬機器、硬體抽象層或類似的東西——它是一個網路協定,目前版本為 X11,程式使用該程式與 X11 伺服器進行通訊。此類程式實際上可以用任何語言編寫,只要它具有所需的功能即可。

X11伺服器通常在您自己的電腦上運行,並執行在螢幕上顯示圖形並將鍵盤和滑鼠事件發送回程式的工作。程式(X11 用戶端)使用此類IPC 方法(Unix 套接字)在本地連接到它,或透過網路– 使用直接TCP/IP(罕見)或在SSH 連線內建立隧道(PuTTY 中的“X11 轉送”選項)。

反射X是用於 Windows 的商業 X11 伺服器。開源替代方案包括西格溫/X(Xorg 的連接埠),以及小明。幾乎每台 Linux 或 BSD PC 都運行奧格作為其主要圖形系統。

當您在電腦上執行 Reflection X 時,它只是坐在那裡等待連線。當您jvisualvm在 CentOS 電腦上執行時,探查器會連接到 X11 伺服器(透過 PuTTY 使用的相同 SSH 連線進行隧道傳輸)並使用 X11 協定開啟一個視窗並在其中進行繪製。

答案3

  • Reflection X 似乎是一個在 MS Windows 下運行的 X-Server。一個免費的替代方案是小明
  • X-Server 服務 GUI 用戶端請求並將其顯示在執行 X-Server 的主機上
  • 在 Linux 機器上,一旦 X-Server 在 Windows 電腦上啟動並執行,您需要將 DISPLAY 設定為指向 X-Server。然後,您可以從 Linux 伺服器內啟動 GUI 應用程序,它將顯示在 Windows 桌面上。

漂亮吧?

或者,如果 Linux 機器是 VMware VM,您可以安裝 VMware 工具並使用其統一應用程式執行類似的操作。

相關內容