Даже с тех пор, как я прочитал главу о X в руководстве Unix Haters, я все еще думал, что X был одной из вещей, которые делают unix лучше Windows, поскольку он делает «возможным» работать на машинах удаленно с помощью графического пользовательского интерфейса.
Но после частого использования удаленного рабочего стола Windows, который даже имеет полностью работающие клиенты Unix, я должен сказать, что удаленный X кажется все более древним.
Сегодня я случайно перевел свою стационарную машину Windows в спящий режим и потерял всю рабочую среду, которая была запущена через X с Xming и работала с мая этого года. Не имело бы значения, если бы это был Ubuntu, который я запускал, он был бы потерян в любом случае, поскольку моя рабочая среда, состоящая из сеансов gnome-terminal и сеансов emacs, мгновенно умерла, когда исчез X-сервер. Конечно, есть экран который может сохранить ваши сеансы gnome-terminal, если вы можете жить с конфликтом Ctrl-A, но для X?
Если бы моя удаленная машина была сервером Windows, я бы просто повторно подключил свой клиент удаленного рабочего стола и продолжил бы, как будто ничего не случилось.
Почему сообщество Unix позволило этой хрупкой удаленной графической среде выжить без должного улучшения? Я гуглил, гуглил и исследовал VNC ant NoMachine, но они, похоже, либо не делают правильные вещи, либо являются коммерческими, либо по-разному повреждены.
Недавно я нашел неудобное, но превосходное решение с точки зрения производительности, вместо использования NX или VNC (я даже попробовал экспериментальную утилиту xpra), я попробовал совершенно другой подход, который работает как шарм:
Используя удаленный рабочий стол, запустите Xming ... наслаждайтесь, самым быстрым решением X-сервера с возможностью повторного подключения, которое я пробовал до сих пор.
Заметка Возможно, удастся запустить виртуальную машину Linux вместо XP и использовать встроенный протокол VRDP в VirtualBox, я еще не пробовал. Это решение не требует решения на основе Windows / Xming и может быть полностью построено с использованием OSS.
Запустите X-сервер в удаленной системе, который представляет собой сервер VNC для вашей рабочей станции.
Попросите X-клиентов удаленной системы подключиться к этому X-серверу, а затем подключите к нему вашу рабочую станцию с помощью VNC-клиента.
В Xvnc Сервер X / VNC был частью стандартного дистрибутива VNC AT&T - я считаю, что большинство дистрибутивов VNC все еще поставляются с чем-то эквивалентным.
Чтобы ответить на вопрос "почему он не делает то, что я хочу?" часть вашего вопроса, X никогда не предназначался для того, что вы с ним делаете. Чтобы подчеркнуть это, X - это не удаленный доступ. Это удаленно дисплей.
X был разработан для использования в крупных университетах, где у вас был большой сервер в центре обработки данных, где не было дисплея, и изящные маленькие графические терминалы в компьютерных лабораториях без реальной мощности процессора, подключенные друг к другу через Ethernet. (который вряд ли упадет, и если он упадет, у вас будут большие проблемы).
Точно такие же принципы применяются к сеансу X и сеансу telnet или SSH - если базовая сетевая ссылка пропадает, сеанс умирает.
Сам по себе X довольно древний. vi
даже старше. Оба делают именно то, что были задуманы первоначальными дизайнерами, с минимальным расползанием функций. Это способ Unix.
Я использую nxserver http://www.nomachine.com/ Вы можете подключиться к X или к сеансу Windows rdp, и он возобновит ваш последний сеанс, если вы отключитесь, перезагрузитесь и сожмите соединение, чтобы оно отлично работало (лучше, чем rdp или vnc) на медленных соединениях (gsm / gprs).