Phindowsへようこそ

Phindowsは、Win32sプラットフォームのユーザと、リモートQNXコンピュータで実行されているグラフィカルなPhotonアプリケーションとの対話を可能にする連結ツールです。Phindowsは、以下のWin32sプラットフォームで作動します。

Phindowsのインストール

PhindowsをWindowsコンピュータにインストールするには、Phindowsフロッピ・ディスクからA:\INSTALL.BATを実行します。

Phindowsインストール・プログラムは、必要なファイルを\USR\PHOTONディレクトリにコピーします。このディレクトリには、FONTおよびCACHEディレクトリが作成され、Photonのフォント及びイメージのキャッシュ・データが格納されます。インストールが終了したら、Phindows アイコンまたはショートカットを作成するとよいでしょう。

Phindowsの起動

Phindowsを起動するには、Phindowsアイコンをクリックします。(または\USR\PHOTON\PHINDOWS.EXEを実行します)

PhindowsがConnectダイアログを表示します。この中で、接続のタイプを指定することができます。(TCP/IP または直接シリアル接続)さまざまな接続オプションが使用できますが、通常、デフォルトのオプションで問題なく作動します。

接続パラメータを選択したら、ApplyをクリックしてPhindowsをこれらのパラメータで接続します。接続をする前に設定を保存するには、Apply & Saveをクリックします。これで、保存された設定が次回のPhindowsセッションからデフォルト設定になります。

TCP/IP接続を行う場合、接続するQNXマシンのインターネット・アドレスを指定しなければなりません (例: 198.53.31.1)。リモート・コンピュータのコンフィギュレーションが正しければ、Photonログイン・プロンプトが表示されます。これで接続が終了し、Photonが実行されました。

シリアル接続を行う場合(Windows 95及び NTのみ)、COMポート (例: COM1またはCOM2)を指定しなければなりません。ボーレートが指定されない場合、Windowsのデフォルト設定が使用されます。 シリアル接続では、Phindowsはまず単純なテキスト端末として作動するので、モデムに直接コマンドを入力(例: ATDT1-613-591-0934)します。接続されたら、QNXにログインし、次のコマンドを入力します。

	/usr/photon/bin/phrelay

このコマンドにより、Phindowsはテキスト端末モードから、Pnotonのグラフィカルな端末に変わります。この時点で、Photonログイン画面が現れます。

TCP/IP用のコンフィギュレーション

TCP/IPを使用している場合、Phindowsを使用する前に、以下のコンフィギュレーションの問題を解決してください。

まず、リモートQNXホストにTCP/IPがインストール済みで、実行されていなければなりません。加えて、inetdが実行されていなければなりません。また、以下に示すコマンド行が、TCP/IPコンフィギュレーション・ファイルに含まれていなければなりません。

/etc/inetd.conf ファイルに次の行を加えてください。

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

/etc/services ファイルに、次の行を加えてください。

	phrelay 4868/tcp

この2つのエントリにより、inetdは、外から入ってくる新しいPhotonセッション要求を受け付けるようになります。リモートPhindowsクライアントからの要求を検知すると、inetdは自動的に完全なTCP/IP接続を行い、その接続の上にphrelayを実行します。これで、Phindowsがローカル・マシンに完全に接続されます。

最後に、TCP/IPをサポートするようにWindowsクライアントを構成します。この構成は、ご使用のWindowsプラットフォームのタイプ、すでにインストールされたサービス、また、SLIP/PPPに対するEthernetまたはダイヤルアップ・ネットワークが使用されているかどうかによって異なります。Microsoftのマニュアルを参照してください。

通常、Windows 95とWindows NTには、すぐに使えるTCP/IPパッケージがあります。Windows 3.11プラットフォームでは、TCP/IPを介してPhindowsを使うことができますが、Win32sとWINSOCKが両方ともインストール済みで作動していなければなりません。(これらは両方ともMicrosoftのftpサイトftp.microsoft.comから無料で入手が可能です。)

データ圧縮オプション

PhindowsのConnectダイアログで、以下の三種類のデータ圧縮オプションの一つを指定することができます。

  1. Byte-Pair Encoding (BPE)は、最も優れたデータ圧縮を行い、すべてのシリアル接続で推奨されています。BPEでは、メモリおよびCPUの使用において、デコードにかかる負担は少ないものの、ホストQNX マシンでは、かなりのCPU が必要です。最も優れたデータ圧縮オプションではありますが、モデムリンク等のリンク速度が遅い場合、送る側のCPUにかかる負担が大きくなります。
  2. Run Length Limited (RLL) は、優れたデータ圧縮を提供します。 BPEほどの圧縮能力はありませんが、RLLエンコーディングは、エンコードとデコードの両方をすばやく行うことができます。RLL エンコーディングは、TCP/IPネットワーク接続で推奨されます。QNX ホストでのCPU負担が少い上に、かなりの圧縮ができるからです。
  3. 圧縮なし。データ圧縮をオフにすると、Photonドロー・イベントは「そのまま」の形で転送されます。これは、接続バンド幅が非常に高く(例えば100Mb Ethernet)、データ圧縮にかける時間が不要なステップである場合には、適切なオプションであると言えるでしょう。

データ・キャッシング・オプション

Phindowsは、ホスト・マシンからクライアント・マシンへ転送されるデータの量を極力押さえるために、さまざまなデータ・キャッシング・テクニックを使っています。この集約的なデータ・キャッシングにより、モデム・リンク速度が9600という低速でもPhindowsを使用することができます。

Photonの「大きな」静的データのほとんどには、ユニークな32ビットid(タグ)が「タグ付け」されています。タグ付けされるオブジェクトには、ビットマップ・データ、イメージ・データ、カラー・パレットが含まれます。これらのオブジェクトは、通常Photonプログラム開発者が最初に作成するときにタグ付けされます。このプロセスはPhoton開発ツールによって自動的に処理されるので、プログラム開発者は、多くの場合、タグ付けプロセスを意識していません。

Photonは、データ・オブジェクトがPhotonイベント空間に流れるときに、これらのタグをデータ・オブジェクトと一緒に渡します。結果として、Photonグラフィックス・ドライバ(phrelayなど)は、前もって計算された、オブジェクトに固有の小さなタグによって、より大きなPhotonグラフィカル・オブジェクトを識別することができます。

Phrelay(Phindows接続のホスト側)は、通信リンクを通して、Photon の画像イベントをPhindowsクライアントに転送します。PhrelayとPhindowsは、プライベート・プロトコルを使用し、これらの大きな画像オブジェクトをリモート・クライアントに一度だけ送ります。その後は、そのデータ・オブジェクトはすべて前述の小さなタグで参照されます。Phindowsのクライアントがそのデータ・オブジェクト全体のローカル・コピーを持っているということを知っているからです。時間が経過すると、よく使われるオブジェクト(アイコンやバックドロップなど)はキャッシュされます。

Phindowsは、これらのタグ付けされたデータをローカル・メモリにキャッシュするだけでなく、終了するときに、最も以前に使われたオブジェクトを自動的にディスクから取り除き、キャッシュされたすべてのオブジェクトをディスクに保存します。次回にPhindowsが起動するとき、最近使用されたディスク・キャッシュからメモリ内のキャッシュを前もってロードし、リモート・セッションに対し、どのオブジェクトをすでに「知っているか」を伝達します。これは、Phindowsが一度ある画像オブジェクトを見ると、通常は、次回のPhindowsセッションにおいても、同じデータを再送する必要がないということを意味します。

PhindowsのConnectダイアログで、メモリ内データ・キャッシュのサイズと、最も最近に見られたオブジェクトを保存するディスク・スペースの最大サイズを指定することができます。デフォルト値はRAMキャッシュが1024K、ディスク・キャッシュが20Mです。通常はデフォルト値で十分です。

コマンド行オプション

PHINDOWS.EXEは、以下のコマンド行オプションをサポートしています。通常、Phindowsを起動するアイコンまたはショートカットを作成する際に、これらのパラメータがコマンドに加えられます。

-t inet_addr
QNXホストのTCP/IPアドレス (例: 198.53.31.1)
-m commport
直接シリアル接続ポート(デフォルト: com1)
-b baud [,commbaud]
有効なリンク速度を指定します。直接シリアル接続を使用する場合、特定のボーレート(,commbaud)が指定されない限り、 comポートのボーレートもこの値に設定されます。 何も指定の無い場合は、Windowsのデフォルト値を使用します。
-n node
指定のノードですでに実行されているPhotonに接続します。(下記を参照)
-u
アンロック・モード (Photonセッションの独立したブラウズを可能にします。
-i igrp
指定のPhoton入力グループに接続します。 (デフォルト: 1)
-x offset
このx offsetでPhoton領域を形成します。 (デフォルト: 0)
-y offset
このy offsetでPhoton領域を形成します。 (デフォルト: 0)
-h height
ウィンドウの初期高さ (デフォルト: 460)
-w width
ウィンドウの初期幅 (デフォルト: 620)
-H t1[,t2[,t3]]
マウスのホールド・オフ時間 (デフォルト t1=1.2*9600/baud, t2=t1/2, t3=t1/4)
t1は通常のマウスの動きのホールド・オフ時間です。
t2はマウスボタンが押されたときのホールド・オフ時間です。
t3はドラッグ・カーソルが動かされたときのホールド・オフ時間で す。
-K key
データ記号化用のプライベート・キーを指定します。
-s service
このPhotonサービスが自動的に起動するように要求します。
-U userid[:password]
最初にこのQNX useridでログインします。 (-sと共に使われます)
-k
キオスク (フルスクリーン) モードで始めます。

-t-mのいずれも指定されない場合、PhindowsはConnectダイアログを表示して通信パラメータを尋ねてきます。

リモートQNX Photonセッションの「コピー」

Phindowsの通常モード( -nオプションなし)では、接続したQNXマシンでの、個人のPhotonセッションがスタートします。PhotonのJumpgatesおよびDitto機能により、同じQNXマシン(または同じQNXネットワークのどのマシンでも)のほかのPhotonセッションと対話することができますが、これらの機能を使用しない場合のPhotonセッションは、他のユーザから独立したセッションとなります。

-nコマンド行オプションを指定すると、Phindowsクライアントは、接続しているQNXネットワーク上のQNXマシンですでに実行されているPhotonセッションと対話ができます。リモートPhotonユーザの画面とまったく同じコピーが、Windowsのデスクトップに表示されます。さらに、マウスやキーボードも直接リモートPhotonセッションと連動して使うことができます。事実上、リモート画面の前に座っているかのように、リモート・セッションに「乗り移って」しまうことができるのです。

リモート・サポートの例

例えば、Photonを実行しているリモートQNXサイトにサポートを提供するには、次のようなコマンドでPhindowsを使用し、そのQNXマシンにダイヤルアップ及びログインできます。

	phindows.exe -mcom2 -n/dev/photon

ログインしたら、次のようにphrelayを起動します。

	/usr/photon/bin/phrelay

この時点で、すでに存在している/dev/photonという名のPhotonセッション(ローカル・コンソールで実行されているPhoton)に対する接続要求が出されたことがphrelayに知らされます。Phrelayは、コンソールのグラフィックス領域をすべてを覆うグラフィックス領域を形成し、自分のマウスと、リモート・マウスが同じカーソルをコントロールできるようにします。こうして、リモート・デスクトップを、リモート・ユーザと共有することができます。

このタイプのリモート連結性は、さまざまな用途に利用することができます。例えば、次のような目的にかなっています。

もちろん、リモート・コンソールの前に、実際に人が座っていなければならない必要はありません。また、物理的にスクリーンやキーボードがリモート・サイトになくてもかまわないのです。Photonの連結性を利用して、まったくの無人のリモート・サイトを制御することが可能です。これにより、遠隔診断や維持にかかる交通費だけでなく、キーボードやモニタのコストがかからなくなるので、リモート・サイトにかかるハードウェア・コストを節約することも可能です。

リモートPhotonセッションへの接続

自分がモデムで接続しているQNXマシンではないQNXマシンで実行されているPhotonアプリケーションを見たい場合でも、問題はありません。-nオプションでは、そのリモートQNXネットワークのいかなるPhotonセッションでも、QNXフルパス名指定をすることができます。例えば、 QNXノード1にダイヤルインしているが、ノード2のコンソールで実行されているPhotonと対話したい場合は、次のコマンドを使います。

	phindows.exe  -n//2/dev/photon

QNXネットワークにログインしたら(最初はノード1にログインします)、次のようにphrelayを起動します。

	/usr/photon/bin/phrelay

phrelayは、実際にはノード2のPhotonに接続したいということを認識し、自動的にそのノードへ移りますが、ダイヤルインに使用されたモデム(ノード1のモデム)を使いつづけます。QNXは、もともとオペレーティング・システムとして販売されているので、これはシームレスに、かつ効率的に行われます。

他のQNXノードでPhotonセッションをスタートする

ログインしたQNXマシンには多くのモデムがあるが、CPUスペアまたはメモリがあまり無いとします。個人的なセッションをノード2でスタートし、ノード2の豊富なスペア・リソースを利用する場合(QNXでは、どのノードでもよいのです)、次のコマンドでこれを指定します。

	phindows.exe  -n//2/dev/ph+

ひとつのPhotonセッションを複数の画面に広げる

Phindowsとphditto(Photonに標準で添付されています)は、両方ともひとつのPhoton空間を、複数のデスクトップに「引き伸ばす」ために使用できます。これら複数のデスクトップのいくつか(またはそのすべて)は、QNXコンピュータ、Windowsデスクトップ、またはXワークステーション(phinxプログラムで)として使用することもできます。

これを可能するために、phdittoとPhindowsでは、-x, -y, -hおよび-wオプションが提供されています。これは、次のような働きをします。

QNXマシンの解像度1024x768のコンソールでPhotonを実行していて、そのQNX画面のすぐ右横にある1024x768のWindows画面を取り入れる(2048x768のPhoton空間を作る)ために、Photonを引き伸ばしたいとします。このとき、Windowsマシンで、次のようにPhindowsをスタートします。

	phindows.exe -x1024 -n/dev/photon

接続されると(TCP/IPが適切に作動します)、通常はPhoton画面の下にあるPhotonデスクトップ・マネージャが、右手のMS-Windows画面の下の部分を含むように「引き伸ばされ」たのに気づかれるでしょう。これで、どちらかのマウスを取って、新しいアプリケーションをスタートしたり、画面から画面へとドラッグしたり、広がった作業領域を有効に使うことができます。

-x, -y (および -h-w)オプションを有効に使うことによって、面白いコンビネーションをいろいろ作ることができます。(ひとつの大きなPhoton画面を形成するモニタ配列や、マルチメディア・プレゼンテーションなど。)

Photonセッションの共有 (ワークグループ・コンピューティング)

通常モードでの、他のユーザのPhotonセッションのコピー(-n 指定)は、ローカルまたはリモート・ユーザどちらかのカーソルしか受け付けません。同じく、キーボードの入力は、キーボード・フォーカスによって、どちらか一方のキーストロークがアプリケーションに入力されます。これは、通常リモート・トレーニングやリモート・デバッギングで必要なものです。

しかし、リモート・ユーザには、こちらの動きには関係なく仕事を続けてほしいことがあります。Phindowsのコマンド行で、-uオプションを指定すると、これを実現することができます。このモードでは、マウス、キーボード、モニタのすべてが、別のユーザのコンソールから独立した状態になります。両方のユーザに二つのカーソルが見えますが、(自分のカーソルははっきり見え、他のユーザのカーソルは「ぼかし」の状態で見えます)これらのカーソルは別々に動きます。

ユーザは、Photonの用語で言うところの、自分の入力グループでPhotonを実行しています。他のユーザに影響することなく、Photon空間を自由に動くことができます。自分のマウスクリックやキーストロークは、自分の入力グループにフォーカスがあるアプリケーションに向けられます。したがって、Photon空間のどこにでも新しいアプリケーションをスタートすることができます。(ほかの人の邪魔にならないように、別のコンソールを使うのがいいでしょう)自分の作業領域があるデスクトップに他のユーザが移動してこなければ、お互い影響を受けることはありません。

このようにして共有できる作業領域の数には、構造的な制限はありませんが、現実的には、一度に二人以上のユーザとの共有を望まれることはあまりないでしょう。複数のユーザがひとつのQNXマシンに接続することのほうが、よくあるパターンでしょう。この場合、それぞれのユーザが個人のPhotonセッションを実行(Phindowsのデフォルト)し、Photonのビルトイン連結機能(Jumpgates, phditto, および msgpadなど)を使います。ひとつのQNXマシンは、高速で十分なRAMがあれば、このようなPhindowsクライアントを数十人サポートすることができます。

定義済みのPhotonサービスを使う

-sコマンド行オプションは、WindowsデスクトップでのPhotonアプリケーションのショートカット作成を簡単にするために提供されています。

-sオプションを使用すると、(個人のPhindowsセッションの)WindowsデスクトップでPhotonアプリケーションを自動的に起動するアイコンまたはショートカットを作成できます。リモート・ウィンドウ・マネージャの設定が適切であれば、PhotonアプリケーションをWindowsに固有なアプリケーションであるかのように見せることができます。

QNXホスト・マシンでphrelayが実行されると、phrelayはコンフィギュレーション・ファイル(/etc/config/phrelay[.node]) の中で、-sパラメータで指定されたPhotonサービスを検索します。一致するサービスが見つかると、phrelayはデフォルトのPhotonデスクトップの代わりに、指定されたPhotonコマンドを起動します。ウィンドウ・マネージャの他のオプションも指定することができますが、デフォルトのモードでは、リモートPhotonアプリケーションは、Windowsアプリケーションであるかのように表示され、作動します。

-Uオプションは、通常-sオプションと共に使用され、リモートPhotonコマンドを実行するときに使うQNXのuseridを指定します。useridが与えられず、phrelayサービスがデフォルトのuseridを指定していない場合、PhotonはまずQNXのuseridを要求するログイン・ダイアログを表示します。-Uオプションでuseridを指定することにより、このダイアログ表示を避けることができます。

例えば、次のようにWindowsショートカットが作成されたとします。

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

ここで、IPアドレスがQNXノード2のTCP/IPアドレスを指定し、ノード2のphrelayコンフィギュレーション・ファイル(/etc/config/phrelay.2)が次の行を含んでいるとします。

	vpoker  %  /usr/photon/bin/vpoker

これで、ユーザjoeは、Windowsデスクトップでアイコンまたはショートカットをクリックして、QNXのuserid joeとして、Photonのvpokerセッションを実行することができます。

Phrelay コンフィギュレーション・ファイル形式

phrelayコンフィギュレーション・ファイルの、それぞれのサービス・エントリは、次のようになります。

	service	user	[-W pwm_options]	command

ここで、

serviceは、Photonサービスのシンボリック名(-s Phindows パラメータに一致)です。

commandは、デフォルトのPhotonデスクトップの代わりに起動するPhotonコマンドです。

userは、次のうちのどれかです。

userid
QNX userid (-U指定の無い場合)。必要があれば、パスワードの入力を促します。
userid:password
QNX userid およびpassword (-U指定の無い場合)
%
-U指定が無い場合user/passwordの入力を促します。
?
常にuser/password の入力を促します。(-Uを無視)
!
-Uが無い場合、失敗
=userid
このuserid を強制(-Uを無視)
=userid:password
このuseridとpasswordを強制(-Uを無視)

pwm_optionsは、次のPhotonウィンドウ・マネージャのうち1つ(あるいは以上)です。

P
タスクバー、コンソール切り替え、キーボードを不能にします。
W
作業領域メニューを不能にします。
R remote_option
リモート・ウィンドウ・マネージャ・オプション(下記を参照)

ここで、 remote_optionは、次のうちの1つ(あるいは以上)です。

c
プログラムを終了すると、ウィンドウ・マネージャを閉じます。
b
Photonウィンドウ・マネージャ・ボーダーを取り除きます。
t
Phindowsにウィンドウ・タイトルを送ります。
f
フィットさせます。(アプリケーションをPhindows ウィンドウに常にフィットさせます)
r
アプリケーションにフィットするようにPhindows ウィンドウのサイズを最初に変更します。
m
Phindowsウィンドウにフィットするように、アプリケーションのサイズを最初に変更します。

上記のどのオプションも指定されない場合、デフォルトのウィンドウ・マネージャ・オプションは、"PWRcbtfr" です。