phrelay

Поддержка удаленного подключения клиентов phindows и phditto

Синтаксис:

phrelay [-eGx] [-b число] [-D файл_отладки] [-g порт]

[-k задержка,интервал,повторная_попытка] [-V...]

Поддерживаемые платформы:

Neutrino

Опции:

-b число

Установить количество сообщений, записываемых в буфер для ускорения вывода в Phindows или phditto. Фактически используется наименьшее из значений, указанных в этой опции и в опции -N утилиты Phindows или phditto. Значение по умолчанию 20. Более низкое значение используется при необходимости экономии памяти за счет пропускной способности. Если память не критична, то используется более высокое значение для повышения пропускной способности. Изменение этой настройки наиболее эффективно, если время отклика при сквозной передаче данных велико по сравнению с пропускной способностью (например, при подключении по модему или при наличии большого количества сетевых переходов между локальным и удаленным узлами).

-D файл_отладки

Файл или устройство, на которые следует отправлять отладочную информацию, указанную в опции -V.

-e

Запретить незашифрованные соединения. Если указана эта опция, то для предотвращения отклонения соединения вместе с опцией -K соединение Phindows должно предоставлять допустимый секретный ключ. Если эта опция не указана, Phindows может установить соединение без шифрования. Для получения дополнительной информации см. раздел Шифрование далее.

-G

Если inetd не запускает утилиту phrelay автоматически, можно указать эту опцию при запуске для прослушивания утилитой phrelay порта 4868.

-g порт

То же, что и -G, но требуется указать порт.

-k задержка,интервал,повторная_попытка

Задержка "keepalive" (в секундах), интервал (в секундах) и число повторных попыток. Эта опция определят, как долго утилита phrelay остается активной после неуспешного сетевого подключения к клиенту (например, если отсутствует сетевой кабель). Значения по умолчанию 20,5,3.

-V...

Вывести расширенную информацию. Для повышения степени подробности информации можно добавить дополнительные опции "V". Вывод отправляется в файл или на устройство, указанное в опции -D, которая является обязательной при наличии опции - V.

-x

Встроить в поток данных информацию о цветовой палитре. Эта опция решает проблему неверных тегов палитры некоторых приложений с большим числом мелких графических элементов и, соответственно, их некорректного отображения на экране клиентского компьютера. Если мелкие графические объекты (например, изображения на кнопках) отображаются правильно, эту опцию можно не указывать.

Описание:

Утилита phrelay поддерживает клиентские компьютеры с пользовательским интерфейсом на других узлах.

Удаленное подключение через модем

Если указан модем (с помощью опции -m утилиты phditto или phindows), то удаленный клиент сначала выступает как простой эмулятор текстового терминала и обеспечивает возможность взаимодействия с модемом, подключения к удаленному компьютеру QNX и входа в систему.

После входа в систему можно начать сеанс Photon путем ввода следующей команды:

exec /usr/bin/phrelay


Удаленный клиент синхронизируется с phrelay и начинает действовать как графический терминал Photon.

Удаленное подключение по TCP/IP

Если указано подключение по TCP/IP (с помощью опции -t утилиты phditto или phindows), программа inetd, выполняемая на удаленном хосте QNX, автоматически запустит phrelay при условии, что phrelay и inetd настроены корректно (см. далее).

Конфигурирование для TCP/IP

До начала использования phrelay по протоколу TCP/IP необходимо обратить внимание на несколько вопросов конфигурирования.

Во-первых, на удаленном хосте QNX необходимо установить и запустить TCP/IP. Кроме того, необходимо запустить программу inetd, указав в конфигурационном файле inetd (/etc/inetd.conf) следующие элементы:

phrelay stream tcp nowait root /usr/bin/phrelay phrelay

Файл file /etc/services должен содержать следующую строку (как файл по умолчанию):

phrelay 4868/tcp


При наличии этих двух записей программа inetd отслеживает входящие запросы на создание нового сеанса Photon. При обнаружении запроса (от удаленного клиента phindows или phditto) программа inetd автоматически устанавливает полное соединение по TCP/IP и запускает phrelay для этого соединения. Удаленный клиент phindows или phditto полностью подключается к локальному сеансу Photon.

Подключение через последовательный порт

Утилиту phrelay можно использовать для подключения компьютера, на котором запущена утилита phindows (в среде Windows) или phditto (в среде Neutrino), через последовательные порты компьютеров к резидентному компьютеру разработки Neutrino, который выступает как целевой компьютер.

Пример последовательного подключения

Для подключения порта COM1 на хосте разработки под управлением Windows или Neutrino к /dev/ser1 на компьютере разработки под управлением QNX6, который выступает как целевой компьютер, используется нуль-модемный кабель. Здесь приведены две аналогичные процедуры, которые можно использовать для подключения phditto/phindows к phrelay:
  1. На целевом компьютере выполните команду on -t/dev/ser1 ksh

  2. На хосте выполните команду phditto -m/dev/ser1 или phindows -mcom1

  3. В окне phditto/phindows дождитесь отображения приглашения ksh и выполните команду stty +raw +echoe +echoke +echoctl +imaxbel +onlcr

  4. В окне phditto/phindows выполните с полномочиями root следующую команду: phrelay -x

Последовательность подключения phrelay автоматически возобновляется. Другой способ подключения к целевому компьютеру:
  1. На целевом компьютере добавьте к списку в файле /etc/config/ttys строку /dev/ser1, а затем перезагрузитесь или запустите tinit с полномочиями root.

  2. На хосте выполните команду phditto -m/dev/ser1 или phindows -mcom1

  3. В окне phditto/phindows дождитесь приглашения "login", войдите в систему и выполните команду: stty +raw +echoe +echoke +echoctl +imaxbel +onlcr

  4. В окне phditto/phindows выполните команду phrelay -x с полномочиями root


Использование предварительно определенных служб Photon

Опция командной строки -s утилит phditto и phindows упрощает задачу создания ярлыков для приложений Photon на рабочем столе MS-Windows.

Опция -s позволяет создать значок или ярлык на рабочем столе MS-Windows для автоматического запуска приложения Photon (в рамках частного сеанса phindows). Если опции удаленного менеджера окон указаны правильно, то приложения Photon выглядят как собственные приложения MS-Windows.

При запуске утилиты phrelay на хост-компьютере под управлением QNX она осуществляет поиск службы Photon, указанной в конфигурационном файле (/etc/config/phrelay[.узел]) с помощью параметра - s. Если соответствующая служба найдена, то по умолчанию вместо рабочего стола Photon утилита phrelay запускает указанную команду Photon. Можно указать необязательные опции менеджера окон, но по умолчанию удаленное приложение Photon запускается таким образом, что выглядит и функционирует как собственное приложение MS-Windows.

Опция -U утилит phditto/phindows часто используется в сочетании с опцией -s для определения идентификатора пользователя QNX, который следует использовать при выполнении удаленной команды Photon. Если идентификатор пользователя не указан, служба phrelay не указывает идентификатор пользователя по умолчанию, поэтому Photon открывает диалоговое окно входа в систему QNX Photon, запрашивающее для продолжения работы идентификатор пользователя QNX. Если с помощью опции -U идентификатор пользователя указан, то это диалоговое окно входа в систему не отображается.

Пример. Ярлык MS-Windows создан с использованием следующей команды:

phindows -tx.x.x.x -svpoker -Ujoe

В этой команде IP-адрес x.x.x.x определяет адрес TCP/IP узла QNX 2, а конфигурационный файл phrelay на узле 2 (/etc/config/phrelay.2) содержит следующую строку:

vpoker % /usr/photon/bin/vpoker


В результате пользователь с именем Joe может щелкнуть по ярлыку и тем самым напрямую запустить сеанс Photon vpoker (с идентификатором пользователя QNX joe) на этом рабочем столе MS-Windows.

Формат конфигурационного файла phrelay

Утилита phrelay обрабатывает запросы на службу в соответствии с содержимым конфигурационного файла. Если утилита phrelay запущена на узле QNX n, то используется файл /etc/config/phrelay.n. Если этот файл не существует, используется файл по умолчанию /etc/config/phrelay.

Каждая запись службы в конфигурационном файле phrelay имеет следующий формат:

служба пользователь [-W опции_pwm] команда

где:

служба это символическое имя службы Photon (соответствует параметру -s phindows или phditto).

Аргумент пользователь определяет способ обработки идентификаторов пользователей, которые можно указать в командной строке phindows или phditto (опция -U).

Аргумент пользователь может принимать одно из следующих значений:

идентификатор_пользователя

Идентификатор пользователя QNX (если не указана опция -U). При необходимости запрашивается ввод пароля.

идентификатор_пользователя:пароль

Идентификатор пользователя и пароль QNX (если не задана опция -U).

%

Запрашивается ввод имени пользователя/пароля (если не задана опция -U).

?

Всегда запрашивать ввод имени пользователя/пароля (игнорировать опцию -U).

!

Ошибка (если не задана опция -U).

=идентификатор_пользователя

Принудительно использовать этот идентификатор пользователя (игнорировать опцию -U).

=идентификатор_пользователя:пароль


Принудительно использовать этот идентификатор пользователя и пароль (игнорировать опцию -U).

В аргументе опции_pwm можно указать одну или несколько из следующих опций менеджера окон Photon:

P

Деактивировать панель задач, переключение консолей и клавиатуру.

W

Деактивировать меню рабочей области.

R удаленная_опция

Удаленные опции менеджера окон, где в аргументе удаленная_опция можно указать одну или несколько из следующих опций:

b

Удалить границы менеджера окон Photon.

c

Закрыть менеджер окон по завершении работы программы.

f

По размеру окна. Размер приложения всегда соответствует размеру окна phditto/phindows. То же, что и комбинация опций s и l.

l

Непрерывно изменять размер приложения в соответствии с размером окна phditto/phindows.

m

В начале работы изменить размер приложения в соответствии с размером окна phditto/phindows.

r

В начале работы изменить размер окна phditto/phindows в соответствии с размером приложения.

s

Непрерывно изменять размер окна phditto/phindows в соответствии с размером приложения.

t


Отправить заголовок окна в phditto/phindows.

Опции менеджера окон по умолчанию PWRcbtfr.

команда это команда Photon, запускаемая вместо команды по умолчанию, которая вызывает рабочий стол Photon.


Опции сжатия данных

Утилита phrelay поддерживает одну из трех опций сжатия данных при получении соответствующего запроса от клиента:
Опции кэширования данных

В утилите phrelay очень активно используются методы кэширования данных для максимального сокращения объема данных, передаваемых с хоста на клиентский компьютер. В результате такого активного кэширования данных утилита phditto/phindows может работать через модемный канал, с низкой скоростью передачи (до 9600 бод).

Большинство "больших" объектов статических данных в Photon "помечаются" уникальным 32- битовым идентификатором (тегом). Помечаются такие объекты, как растровые данные, изображения и цветовые палитры. Эти объекты обычно помечаются при их создании разработчиком Photon. Это автоматический процесс, выполняемый средствами разработки Photon, поэтому разработчик в большинстве случаев даже не подозревает об этом действии.

Photon передает эти теги вместе с объектами данных при их перемещении по среде обработки событий Photon. В результате этого графические драйверы Photon (например, phrelay) почти всегда получают небольшой уникальный предварительно вычисленный тег, позволяющий определить более крупные графические объекты Photon.

Шифрование

Утилита phrelay поддерживает шифрованные подключения при использовании утилиты Phindows версии 3.09 или более поздней.

Когда утилита Phindows запрашивает шифрованное подключение (ключ указывается в опции командной строки -K), утилита phrelay выполняет поиск совпадающего ключа в файле /etc/config/phkeys. Каждая строка в этом файле имеет следующий формат:

*|пользователь секретный_ключ

Длина ключа не может превышать 31 символ.


Строки, начинающиеся с символа *, относятся к подключениям, для которых не указаны служба Photon и идентификатор пользователя. Для подключений Phindows, в которых указана служба, (-s), также можно определить идентификатор пользователя в опции -U. В этом случае утилита phrelay выполняет поиск пользователя в /etc/config/phkeys, а затем проверяет, соответствует ли указанный ключ ключу, переданному утилитой Phindows. Если соответствующий ключ не найден, утилита phrelay не разрешает подключение, а утилита Phindows отображает сообщение "Error: Permission problem on host" (Ошибка: проблема с полномочиями на хосте).

Безопасность

Утилиты Phindows и phditto позволяют пользователю подключаться к существующему сеансу Photon, при этом содержимое сеанса Photon отображается на экране удаленного клиентского компьютера. Эту опцию можно отключить, создав на целевом компьютере файл /etc/system/config/noditto. Если этот файл существует, удаленные клиенты могут подключаться к целевому компьютеру с использованием собственного частного сеанса Photon, но не могут просматривать уже начатые сеансы Photon.

Примеры:

В удаленном сеансе phindows или phditto введите:

exec /usr/bin/phrelay