X Window Server для запуска инструментов с графическим интерфейсом

X Window Server для запуска инструментов с графическим интерфейсом

Мы — магазин программного обеспечения, который пишет много кода Java. Большинство наших серверов приложений Java — это CentOS-боксы, размещенные в удаленном центре обработки данных.

Всякий раз, когда нам нужно залезть в эти машины и что-то там просмотреть, мы используем PuTTY.

Недавно меня попросили следить за нашей JVM с помощью jvisualvmпрофилировщика памяти, который является богатым инструментом GUI, использующим множество графиков и диаграмм с красивыми цветами. Когда я спросил своего технического руководителя, как я могу просматривать такой инструмент GUI поверх инструмента с символьными командами, такого как PuTTY, он посоветовал мне использовать нечто под названием Reflection X.

Это побудило меня почитать о Reflection X и X Windows в целом (с которыми я никогда не имел дела).

Теперь я понимаю, что «X» — это уровень абстракции оборудования, позволяющий писать код, ориентированный на графический интерфейс, и развертывать его на любом оборудовании, на котором может работать X. Таким образом, он идентичен (по теме) виртуальной машине Java.

То, что янетпонимание — это взаимосвязь между моим ПК с Windows, 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. Такие программы могут быть написаны практически на любом языке, если только он имеет необходимые функции.

TheX11 серверобычно запускается на вашей собственной машине и выполняет работу по отображению графики на экране и отправке событий клавиатуры и мыши обратно в программы. Программы (клиенты X11) подключаются к нему локально, используя такие методы IPC (сокеты Unix), или по сети – используя прямой TCP/IP (редко) или туннелируемый внутри соединения SSH (опция «переадресация X11» в PuTTY).

Отражение Xэто коммерческий сервер X11 для Windows. Альтернативы с открытым исходным кодом включаютCygwin/X(порт Xorg), а такжеСинмин. Почти каждый ПК с Linux или BSD работаетXorgв качестве основной графической системы.

Когда вы запускаете Reflection X на своем компьютере, он просто сидит там и ждет подключений. Когда вы запускаете jvisualvmмашину CentOS, профилировщик подключается к серверу X11 (туннелируется через то же самое SSH-соединение, которое использует PuTTY) и использует протокол X11, чтобы открыть окно и рисовать внутри него.

решение3

  • Reflection X, похоже, является X-Server, работающим под управлением MS Windows. Бесплатная альтернатива —Синмин
  • X-серверы обслуживают клиентские запросы графического интерфейса и отображают их на хост-машине, на которой запущен X-сервер.
  • На вашем Linux-компьютере вам нужно будет настроить DISPLAY так, чтобы он указывал на ваш X-сервер, как только он будет запущен и запущен на вашей машине Windows. Затем вы можете запустить приложение GUI из вашего Linux-сервера, и оно отобразится на вашем рабочем столе Windows.

Изящно, да?

В качестве альтернативы, если Linux-компьютер представляет собой виртуальную машину VMware, вы можете установить инструменты VMware и использовать их приложение Unity, чтобы сделать что-то подобное.

Связанный контент