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:
-
На целевом компьютере
выполните команду on
-t/dev/ser1 ksh
-
На хосте выполните
команду phditto
-m/dev/ser1 или phindows -mcom1
-
В окне phditto/phindows
дождитесь отображения приглашения ksh и выполните команду stty +raw +echoe +echoke +echoctl +imaxbel
+onlcr
-
В окне phditto/phindows выполните с полномочиями
root следующую команду: phrelay -x
Последовательность
подключения
phrelay автоматически возобновляется. Другой способ подключения
к целевому компьютеру:
-
На целевом компьютере
добавьте к списку в файле /etc/config/ttys строку /dev/ser1, а затем перезагрузитесь
или запустите tinit с
полномочиями root.
-
На хосте выполните
команду phditto
-m/dev/ser1 или phindows -mcom1
-
В окне phditto/phindows
дождитесь приглашения "login", войдите в систему и
выполните команду: stty +raw
+echoe +echoke +echoctl +imaxbel +onlcr
-
В окне 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 поддерживает одну из трех опций
сжатия данных при получении соответствующего запроса от клиента:
-
Byte-Pair Encoding (BPE)
– наилучшее сжатие данных, рекомендуется для всех
последовательных подключений. Декодирование данных, сжатых
с использованием BPE, не оказывает чрезмерную нагрузку на
систему (память и загрузка ЦП), однако для него выделяется
достаточно большой объем ресурсов ЦП на хост-компьютере
под управлением QNX. При низкой скорости канала (например,
при модемном подключении) возникает дополнительная
нагрузка на ЦП на передающем компьютере, и в этом случае
стоит выбрать компромиссный вариант сжатия.
-
Run Length Limited (RLL)
– нормальное сжатие данных. Хотя такое сжатие не настолько
эффективно, как BPE, и кодирование, и декодирование RLL
выполняются достаточно быстро. Кодирование RLL
рекомендуется для сетевых подключений TCP/IP, поскольку
оно создает меньшую нагрузку на ЦП на хосте QNX и при этом
обеспечивает достаточную степень сжатия.
-
Без сжатия – Если сжатие
данных отключено, события Draw Photon передаются "как
есть". Это имеет смысл при очень высокой пропускной
способности подключения (например, Ethernet 100 Мб).
В этом случае необходимость траты времени на сжатие данных
отсутствует.
Опции
кэширования данных
В утилите 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