QNX 6.0環境
- QNXというのはPOSIX仕様のリアルタイムOSです(LinuxもPOSIX仕様です)。
リアルタイムOSというのはμITRONのように組み込み機器(携帯電話、デジタルカメラ、家電製品等)に埋め込んで使用する「組込みOS」のことです。
尚、QNXの「Q」というのは元の会社名「Quantum Software Systems社」のQuantumを表しているようです。
- QNXは「モジュラー・マイクロカーネルアーキテクチャ」を採用しており必要なサービス(機能)だけを含むOS環境を自由に構築できます。
- QNX標準のウィンドウシステムはPhotonウィンドウシステムですが、「Photon microGUI」ウィンドウシステムはわずか45KBのマイクロカーネルから構成されています。
「Photon microGUI」自体はLinuxでのXウィンドウシステムとは違ってXプロトコルは使用していませんので「Photon microGUI」をXサーバとして使うことはできません。
しかしQNXで標準提供している「Xphoton」(Photon用Xサーバ)というパッケージを導入すればQNX上でXアプリを動かすことができるようになります(実行例は後述)。
- QNXではFD1枚にOSカーネル、ウィンドウシステム、組み込みWebサーバ、日本語表示可能なWebブラウザ、ダイアルアップ機能などを収納してハードディスクなしでインターネットアクセスを楽しむこともできます(組み込みWebサーバの使用例)。
- いくらモジュラー・マイクロカーネルアーキテクチャを採用していてもFD1枚に収納できる機能には自ずと限界があります。
UNIXコマンドを使うTerminal、テキストエディタ、ファイルマネジャ、画像ビューアなども使いたいとなるとやはり数十MBのサイズをもつパッケージの準備が必要になります。
- QNXでは「QNX RTP」(RTP:realtime platformの略)という標準パッケージセットをリリースしています。
リアルタイムプラットフォームとはリアルタイムOSを開発するためのOS環境(プラットフォーム)という意味ですが、「QNX RTP」はそれ自身がリアルタイムOSでかつリアルタイムOSを開発できるというセルフホスト環境である点が大きな特徴の一つです。
「QNX RTP」における不足の機能はパッケージマネジャを使って「WWWリポジトリ」から必要なコンポーネントをいつでもダウンロードしてインストールすることができます。
ここでは2000年10月にリリースされたQNX RTP 6.0の環境(以下単にQNXと略します)について簡単に紹介します。
(但し、リアルタイムOSの開発環境については触れていません)
(1)インストーラとグラフィカルログイン画面
まずハードディスクにQNXをインストールします。
プラグ&プレイ対応のインストーラはネットワークカード、プリンタ、モデムなどのドライバを自動的に組み込んでくれます。
インストールの過程でrootユーザのパスワード設定を行います。
インストール後にハードディスクからブートするとグラフィカルログイン画面が出てきます。
そこでログインするとPhotonウィンドウシステムのデスクトップが表示されます。
(ログイン画面が出たままログインせずに一定時間放置しておくとそのログイン画面が上下左右斜めに動いてスクリーンセーバのような働きをします)
(2)デスクトップの構成
デフォルトのデスクトップ(正確にはワークスペースと呼びます)上には二つの「Shelf」があります。
- 画面の一番下に位置するShelf
このShelfはLaunchボタン(Windowsのスタートボタンに相当)とタスクバーから構成されています。
このShelfの高さはマウスで自由に変えられます。
その高さを最小にするとマウスを一番下にもってきたときだけShelfが現れます(Windowsでの「タスクバーを自動的に隠す」機能相当)。
- 画面の右側に縦長に表示されるShelf
各アプリケーションの起動用ボタンを並べて表示するクイックランチャとして機能します(時計の表示もここに含まれます)。
項目の追加・削除は自由に行えます。
尚、このShelfの横幅もマウスで自由に変更できます。
(3)デスクトップの外観
- デスクトップ
- 実寸大の画面はこちらです(1024x768)。
- デスクトップの背景画像のデフォルトは/usr/share/backdrops/1024x768/fold.jpgなのですがここでは「Open Gallery」用の画像に変更しています。
左上に見えている小さいウィンドウはTerminalウィンドウです。
画面の上側にはエディタが見えています。
また画面のほぼ中央にあるのはVoyager(ボイジャと呼ばれているWebブラウザ)で、その上に重なっているウィンドウはファイルマネジャです。
- ウィンドウの外観という点ではKDE 2.0がこのQNXに似ています。
- 使い勝手という点ではBeOSがこのQNXに似ています。
- デスクトップメニュー
(4)ネットワークの設定について
今回はかなり古めのNE2000互換のISAカードを使ってみました。
ネットワークの基本設定はネットワークマネジャ(io-net)で行います。
今回は/etc/rc.d/rc.localを以下のように新規作成しました。
ここで指定しなかったものはデスクトップ右側のShelfにある「Network Cfg」(phlip)で設定しました。
あとは/etc/rc.d/rc.localを実行すればLAN上でTCP/IPが使えるようになります。
(5)Terminalにおけるtelnet,ftp等の使用
Terminalでは通常のUNIXコマンドがほとんど制限なく使用できます。
(6)イメージビューア
QNX付属のイメージビューアはJPG,GIF,BMPを含めた数多くの画像形式に対応しています。
(7)ダイヤルアップとWebアクセス
- ダイヤルアップ
- ダイヤルアップ定義
ダイヤルアップ定義は「Network Cfg」(DNS定義を含む)で行います。
- ダイヤルアップの起動(Dialer)
- PPPセッション確立中の状況
- 接続時間の確認
- 自IPアドレスの確認方法
PPP接続の都度IPアドレスが動的に割り当てられる場合の自IPアドレスはDialerの「Goto Terminal」ボタンで表示される「local IP address」項目で確認できます。
- Webアクセス
QNXの基本パッケージにはVoyager Ver 2.10のWebブラウザが付属しています。
しかし基本パッケージには日本語環境構築用のパッケージが含まれていないためVoyagerで日本語のWebサイトを表示することはできません(海外のWebサイトはOKです)。
そこでQNFのパッケージマネジャで日本語環境構築用のパッケージ(Japanese Supplement関連)をWWWリポジトリからダウンロードしてインストールします(インストールはパッケージマネジャによるダウンロード後自動的に行われます)。
これによってVoyagerでの日本語表示が可能となります。
尚、この日本語環境構築用パッケージにはBitstreamスケーラブルフォントも含まれています。
尚、VoyagerでのHTMLソースの表示はViewメニューの「Document Source」で行えますがこの場合lessでソースが表示されます。
(このlessで表示されるのは/root/.ph/voyager/view_sourceというファイル名で保存されたHTMLソースです)
(8)テキストエディタ
QNX付属のテキストエディタ(プログラム名:ped)ではフォントのサイズや色などの指定もできます。
もちろんカラー印刷も可能です。
(9)ファイルシステムとファイルマネジャ
- ファイルシステム構成とファイルマネジャ
ファイルマネジャ(プログラム名:pfm)でQNXのファイルシステム構成を見たところです。
隠しファイルを見るにはEditメニューの「Preferences」において「Hide 'dot' File」チェックを外せばOKです。
(ファイルマネジャからの/root/.profileテキスト表示)
- ファイルマネジャの操作について
ファイルマネジャではドラッグ&ドロップ操作はできません。
通常、ファイルのコピー等はマウスの右ボタンクリックによるメニューを使って行います。
(renameを選択すると名称変更用のダイアログボックスが出てきます)
ファイルマネジャのFileメニューの「Open Terminal」を実行するとファイルマネジャ内でのカレントディレクトリがTerminalに引き継がれます。
- コマンドによるFDマウント
DOS形式のFDをマウントする場合には次のようなコマンドを使用して行えます。
mount -t dos /dev/fd0 /fs/dosfloppy(マウント先は/mnt/dosfloppy等どこでも構いません)
アンマウントは「umount /fs/dosfloppy」です。
FD中にwebserver.htmlのようなロングネームのファイルがあっても正しくその名称を認識してくれます。
(10)Linuxファイルシステムのマウント
QNXからLinuxファイルシステムのマウントはmountコマンドで簡単に行えます。
- LinuxパーティションがIDEタイプの内蔵HDにある場合
IDEタイプの内蔵HD用ドライバ(devb-eide)は最初から自動起動されるようになっていますので以下のような感じでmountしてLinuxパーティションのファイルを利用できます。
- hd0t131というデバイス名の意味合いは次の通りです。
・hd0:最初のHDを示します。
・t131:これはパーティションタイプ(type)が「131」(Linux Nativeパーティション)であることを表しています。
ちなみにLinux Swapパーティションのタイプ番号は「130」です。
- LinuxパーティションがSCSIタイプのHDにある場合
まずSCSIカードの種類に応じたBlock-oriented driverをロードしておくことが必要になります。
例えばAMDの539c974/79C974 PCI SCSIホストアダプタを使っているなら「devb-amd」というBlock-oriented driverを使用します。
mountコマンド実行前に「devb-amd」コマンドを投入してSCSIのHDを認識させます。
あとは内蔵HD内のLinuxファイルシステムをマウントするのと同じ要領で簡単にマウントできます。
(11)Linuxファイルシステムのリモートマウント(NFS)
Linux側でexportしたディレクトリをQNX側からリモートマウントしてみました。
リモートマウントしたディレクトリをファイルマネジャで見てみました。
(12)LinuxからQNXファイルシステムのリモートマウント(NFS)
QNXのNFSサーバを利用することによって他のOSのNFSクライアントからQNXのファイルをアクセスできるようになります。
ここではNFSクライアントとしてLinuxを使った例を紹介します。
結局QNXのNFS機能によって他のOSとのピアツーピア接続が可能となります。
(13)日本語変換
QNXではVJEを使用して日本語変換ができます。
vpimを起動するとVJEのツールバーが表示されますのでツールバーを見ながら変換モードの確認が行えます。
(14)メールソフト
QNXにはV-Mailと呼ばれるメールソフトが標準で付いています(プログラム名:vmail)。
- V-MailにおけるHelpメニューの「About vmail」表示
- 受信トレイ
- 日本語のメールタイトル・メール本文の送受信ができます(日本語メールの受信例)。
もちろん添付ファイルの送受信もOKです。
- V-Mailからメールを受信するとメールヘッダの「X-Mailer」項目は「Voyager Email for QNX (vmail v2.02)」と表示されます。
(15)Xphoton(Photon用Xサーバ)
XphotonパッケージにはX11R6ライブラリが含まれています。
Xphotonパッケージを組み込むとXphotonが自動起動されいつでもXアプリが動作するようになっています。
また/usr/X11R6/binにはQNXに移植されたxclockやxtermなどのXアプリもほんの少し入っていますのでそれらを動かしてみました。
当たり前のことですがXphotonはXサーバですのでLinuxなどのXアプリをQNX上で操作することも可能です。
Linux環境に入っているGIMP,Netscape,XlogoなどのXアプリをQNX上で操作してみました。
(手順としてはQNXからLinuxにtelnetで入ってDISPLAY環境変数でQNX側のディスプレイを指定してLinux内のXアプリを起動するだけでQNXの画面からそれらのXアプリを操作できるようになります)
(16)開発環境
QNX対応開発環境としては大きく二つあります。
それらは「GNU開発ツール」と「PhAB(Photonアプリケーションビルダ)」です。
(17)Samba
QNXでのSambaの導入と利用例はこちらで紹介しています。
(18)その他
- QNX RTPのリリースノート
QNX RTPのリリースノートは右側のShelf内にある「Welcome!」ボタンをクリックするとVoyagerが自動起動されてブラウザ表示されます。
- QNXヘルプ
QNXの操作で疑問点が出てきた場合には右側のShelf内にある「Help」ボタンをクリックするとヘルプビューアが起動されます。
キーワード検索もできますので利用しやすいようです。
- QNX付属のメディアプレーヤ(プログラム名:phplay)
サウンドーカード別のオーディオドライバ(deva-sb等)を事前にロードしておいてからメディアプレーヤを起動します。
- リアルプレーヤ(プログラム名:realplay)
- ウィンドウ外観のカスタマイズ例
Launchメニューの「Configure」−「Appearance」でウィンドウの外観(ウィンドウタイトルの色やタイトル表示位置等)を変更できます。
- ウィンドウシェード例
ウィンドウタイトルバーのシェード用ボタンでウィンドウのタイトルバーのみの表示に畳み込むことができます。
- Shelfへの項目追加例
Webブラウザを起動して本オープンギャラリーのサイトを表示するランチャボタン(「OS博物館」)をShelfに追加してみました。
手順は次の通りです。
- デスクトップ右側のShelfを右クリックして「Setup」を選択します。
- 「Shelf Setup」画面でボタン名や実行コマンドを設定をします。
- 項目が追加されたShelf
このShelfの中の「OS博物館」をクリックすると本オープンギャラリーのサイトが表示されます。
- 画面の設定
画面解像度の変更などの画面設定はLaunchメニューの「Configure」−「Video Display」での画面設定ダイアログ(Photon Display Configuration)で行います。
- 画面キャプチャ
Launchメニューの「Utilities」−「Snapshot」を選択するかまたは単純に「PrintScreen」キーを押すとスナップショット取得設定ダイアログが表示されます。
スナップショットの取得箇所、ディレイ時間、スナップショットの取得形式(クリックボード、ファイル形式)を選択して「take Snapshot」ボタンを押すだけで簡単に使えます。
(Windowsのような「Alt+PrintScreen」キーは使えません)
- シャットダウン
Launchメニューの「Shutdown」を選択すると次の画面が表示されます。
尚、Terminal画面から「shutdown」を入力するとシャットダウン方法の問い合わせダイアログは表示されずに即シャットダウン処理が行われます。
- QNX RTP対応のデスクトップ用アプリケーションソフトが世の中にどれ位あるのかについてはよく分かりません。
(基本パッケージの中にも「MediaPlayer」や「Mixer」等のアプリは含まれていますが)
しかしパッケージマネジャでWWWリポジトリから開発環境を取り込めば色々と面白いことができるのではないかと思います。