3

Я пытаюсь заставить X11 работать на моем Mac при подключении к удаленной машине, и у меня много проблем. Я весь день гуглил безрезультатно. Вот мои основные вопросы:

  1. В чем разница между ssh -X, ssh -Y и тем, когда я это делаю, на каком компьютере (локальном или удаленном) есть сервер x, а на каком клиенте?

  2. Команда startx запускает сервер x? Итак, если я пойду к своему терминалу и нажму startx, все, что я сделал, это запустил xserver?

  3. Зачем мне когда-нибудь хотеть ssh на удаленный компьютер и использовать startx? Нужно ли мне использовать -X или -Y, чтобы использовать startx? Кажется, все, что я читал о том, как установить рабочий стол для gnome/kde на удаленной машине, требует от вас использования startx. Если в этом сценарии я использую startx, то кто такой xserver и кто такой xclient?

  4. Будут ли оконные менеджеры gnome/kde при использовании startx на удаленной машине мешать реализации Mac собственного оконного менеджера x11? есть ли вообще это исправить?

  5. Как что-то вроде VNC влияет на все это? Есть ли разница между удаленным сеансом X и простым подключением к удаленной машине и использованием startx?

  6. Как правильно / команда заставить gnome/kde запустить рабочий стол с графическим интерфейсом на моей удаленной машине сервера? (поэтому рабочий стол, отображаемый на моем компьютере, является рабочим столом сервера)? Под рабочим столом я имею в виду обои, папки, корзину и т.д.

  7. Если NX / VNC - единственный способ правильно создать настоящий удаленный рабочий стол в смысле # 6, почему команды $ gnome-session или $ startkde вызывают нужный мне рабочий стол с помощью ssh -X, даже если они не работают правильно?

Было бы полезно, если бы каждый из них рассматривался индивидуально, но если бы вы могли привести меня к какой-то четкой документации, которая также была бы полезна!

3 ответа3

2

Зачем мне когда-нибудь хотеть ssh на удаленный компьютер и использовать startx? Нужно ли мне использовать -X или -Y, чтобы использовать startx? Кажется, все, что я читал о том, как установить рабочий стол для gnome/kde на удаленной машине, требует от вас использования startx. Если в этом сценарии я использую startx, то кто такой xserver и кто такой xclient?

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

Если вы работаете только с локальными приложениями, все это не имеет значения. В старые времена, когда вашему приложению требовалась вычислительная мощность «сервера» (то есть, БОЛЬШОЙ машины в подвале), вы могли запускать задание на машине без дисплея и показывать ее на терминале в вашем офисе.

Оконный менеджер - интересный случай. Это просто приложение X, как и все остальное. Вполне возможно запустить Xserver локально на Mac, а затем запустить менеджер окон Motif на Sun, управляющий вашими локальными окнами, работая в приложении X, которое работает на компьютере с Linux где-то еще.

пс. ответит в sep ответах, чтобы люди могли комментировать / редактировать их.

2
  1. Если я правильно помню, ssh -X сопоставляет X-сервер с целевой машиной, а затем маршрутизирует соединения через канал, созданный SSH, на терминал (т. Е. На вашу машину). «X-сервер» - это программа, которая рисует окно для «X-клиентов», которые являются программами, использующими эти окна.

  2. Да, startx запускает X-сервер. Но в Mac OS X вы запускаете X-сервер, запуская X11.app в Utilities.

  3. Вам бы этого не хотелось, если вы не пытаетесь перезапустить X-сервер на компьютере, на котором вы используете SSH. Но это не имеет ничего общего с вашим подключением к этому компьютеру или программами, которые вы хотите запустить через это подключение.

  4. Не уверен, что понимаю вопрос. Какой оконный менеджер работает на удаленном сервере, несущественен для вашего соединения. Менеджеры окон работают на X-серверах (они являются специальными X-клиентами), а X-сервер на вашем Mac и X-сервер на удаленной машине - это два разных зверя.

  5. VNC - это другое решение проблемы удаленного отображения приложений с графическим интерфейсом. Вы можете объединить два, но я рекомендую вам попытаться понять их отдельно.

  6. Пусть Paul будет вашим Mac, а Peter - машиной (Linux), к которой вы подключаетесь:

Пол: startx (или, скорее, запустите X11.app и используйте окно терминала, которое он создает для следующего)

Пол: xhost + Питер

Пол: ssh -X Питер

Питер: xlogo & (теперь это должно отображаться на экране Пола, если нет, продолжить)

Питер: экспорт DISPLAY = Пол: 0

Питер: xlogo & (теперь это должно отображаться на экране Пола)

1

Как что-то вроде VNC влияет на все это? Есть ли разница между удаленным сеансом X и простым подключением к удаленной машине и использованием startx?

VNC делает похожую работу немного по-другому. VNC просто берет весь экран или одно окно и отправляет видео по сети в приложение VNC на вашем локальном компьютере. X запускает приложение на удаленном компьютере, но отправляет все команды отображения по сети на локальный дисплей X. На самом деле X делает это даже при локальном запуске, но сетевой вызов на тот же компьютер может быть ускорен и очень быстр.

пс. Вы не запускаете ssh на удаленной машине и не запускаете startx - вы запускаете X-сервер локально, затем запускаете ssh на удаленной машине и запускаете приложение X (office/gimp/xeyes/etc), и X обрабатывает его появление локально.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .