概要
Gordon BellとDan DodgeはUniversity of WaterlooでThoth OSを学び、QNXの開発に繋げた。 QNXは初期からリアルタイム性・高い移植性・マイクロカーネル設計を特徴とした。 QUNIXからQNXへの改名後、IBM PC向けに初のマイクロカーネルOSとしてリリース。 教育現場向けのICONプロジェクトに採用され、先進的なネットワーク機能を実装。 QNXはOS/2やUNIXとの競合を意識し、DOS互換機能なども提供した。
Gordon BellとDan Dodgeの出発点
- Gordon Bell と Dan Dodge は1979年、 University of Waterloo で修士課程修了
- Thoth リアルタイムOSの開発・研究経験
- B言語 での実装、 Eh言語、最終的に Zed言語 で書き直し
- 高水準言語による移植性と、プロセス間通信重視の設計
- RTOSコースの最終課題として独自のリアルタイムシステム構築
Quantum Software SystemsとQUNIXの誕生
- 1980年3月30日、Kanataで Quantum Software Systems 設立
- Motorola 6809 搭載のマイクロコンピュータでOS開発開始
- IBM PC 登場後、ターゲットをPCへシフト
- 最初のOS「 QUNIX 0.1」は8bitマイクロコンピュータ向け
- UNIX風だが、 CP/M 的要素も多い
- ディレクトリ構成:/cmds, /config, /sys, /user, /drivers, /util
- manコマンド 非搭載、代わりに help 使用
- プロセス管理コマンドは task (親子関係をfather/son/brotherで表現)
- QUNIX 0.4.33(1982年) でIBM PC用初のハードディスク対応OSに進化
- ただしHDDからの直接起動は不可、フロッピーからのブートが必要
QUNIXからQNXへの進化
- QUNIXの名称が AT&T UNIX と類似しすぎたため、 1982年末 に QNX へ改名
- 初期の QNXカーネル は約10,000行のCで実装
- タスクスケジューリング、メッセージパッシング、優先度管理を担当
- その他の機能は全てサービスとして実装し、メッセージパッシングで連携
- ネットワーク透過型メッセージキュー により、異なる物理マシン間も容易に通信
- 最大 250タスク/4〜16ユーザー 同時利用可能
- 8087数値演算コプロセッサ を活用、最小96KB RAM必要
- QNX 1.0(1983年3月) はIBM PC上でDEC VAX 11/780の約30〜50%の速度を記録
- Cやx86アセンブリのみ対応だったが、 BASIC/Fortran/Pascal のコンパイラも開発
- GUI対応 も計画
- 価格: $650(1983年)、Cコンパイラ・エディタ・MS-DOSディスク読込・ネットワーク機能含む
- QNX 1.20(1984年11月) でファイル名パターンマッチ、シェル強化、ユーザースイッチ、IBM AT対応など追加
教育分野でのQNX:ICONプロジェクト
- Ontario教育省 が1981年に学校へのコンピュータ導入を決定
- 多機種対応コスト回避のため、 統一機種 を選定
- CEMCORP (Canadian Educational Microprocessor Corporation)が開発・供給
- ICON :Intel 80186(7.16MHz)、512KB RAM、ローカルストレージ非搭載
- QNX をネットワーク経由でブート、最大32台がLAN接続
- ファイルサーバー経由でファイル保存・管理
- 価格:1台$2500(学校負担$495、残りは政府補助)
- 当初は ハイパーテキスト型教材システム を計画したが、教育省の方針でCLI+エディタに変更
- プログラミング、マルチタスク、ネットワーク、教育ソフトに優れる
- 生徒によるネットワーク経由の“ハック”も発生
QNXの競争と発展
- OS/2 登場(1987年)により、QNXは競争意識を強化
- QDOS II や RUNDOS によるDOSアプリ互換機能を追加
- IBM PS/2への移植も実現
- QNX v2以降、広告でもUNIXやOS/2との優位性を強調
まとめ
- QNX はリアルタイム性、移植性、マイクロカーネル設計、ネットワーク機能、教育現場での実績を持つ
- 競合OSとの違いを明確化しつつ、産業用・教育用の両面で発展
- 小規模企業ながら、先進的なOS設計思想を実現