OS-9とは
OS-9は、マイクロウェアシステムによって開発された
リアルタイムオペレーティングシステム(RTOS)です。元々は
モトローラの
8ビットMPUである6809向けに開発されましたが、その後、幅広い
CPUに対応しました。その歴史、特徴、構造、採用事例について詳しく見ていきましょう。
OS-9の歴史
OS-9は、マイクロウェアシステムが
モトローラからの依頼で共同開発した
プログラミング言語BASIC09の開発・実行環境として誕生しました。当初は6809プロセッサ専用でしたが、その後、680x0シリーズ、x86、
PowerPC、SH、ARMなど、多くの
CPUに移植されました。
2001年にはラディシス社に買収され、一部門となりましたが、
2013年にマイクロウェアLP社として独立しました。現在も開発が続けられており、組み込みシステムを中心に活用されています。
OS-9の特徴
OS-9は、組み込みシステム向けに設計されたRTOSとして、以下のような特徴を備えています。
OS-9は、プリエンプティブ・
マルチタスク方式を採用しており、複数のタスクを効率的に並行処理できます。これにより、リアルタイム性が求められるシステムにおいても安定した動作が可能です。
多くの組み込み用RTOSがスレッドモデルを採用する中、OS-9は
プロセスモデルを採用しています。各タスクは独立したプログラムイメージを実行し、データ
モジュールと呼ばれる共有メモリ機能により高速な
プロセス間通信を実現しています。また、POSIXに準拠したスレッドもサポートしています。
OS-9の最大の特徴は、その
モジュール構造です。OSのすべての部分が
モジュールとして構成されており、必要な機能だけを選択して使用できます。これにより、高い
移植性、簡単なアップグレード、外部プログラムの常駐化、高いセキュリティ、容易なデバッグが実現します。
- - 移植性: 新しいハードウェア環境への移植は、必要なモジュールを新たに作成するだけで簡単に行えます。
- - アップグレード: 特定のモジュールのみを交換できるため、システム全体の再起動が不要な場合もあります。
- - 外部プログラムの常駐: 外部記憶上のプログラムをメモリにロードし、ROM化されたモジュールのように常駐させることができます。
- - セキュリティ: 各モジュールにはCRCが付与されており、モジュールディレクトリ登録時にチェックされるため、不正なモジュールがロードされるのを防ぎます。
- - デバッグ: モジュール構造により、問題点の切り分けが容易になります。
- - リビジョン管理: モジュールにはリビジョン番号とエディション番号があり、最新のモジュールが優先されます。
- - ROM化: すべてのモジュールがリロケータブルであるため、ROMに直接書き込んで実行できます。
- - 再入可能性: プログラムはリエントラントである必要があり、コード領域はプロセス間で共有できます。
メモリ保護
MMUを持つ環境では、メモリ保護機能が有効になり、システム空間とユーザー空間が分離されます。これにより、ユーザー
プロセスが他の
プロセスやシステムを破壊するのを防ぎます。
マルチユーザー
OS-9は、組み込み用途だけでなく、マルチユーザー環境もサポートしており、
UNIXライクなTSS環境を提供します。ユーザーやグループごとにアクセス権を設定できます。
OS-9は、
UNIXライクな開発環境を提供しており、
シェルや階層構造の
ファイルシステムなどを備えています。
OS-9LAN
OS-9独自のLANであるOS-9LANにより、他のコンピュータの資源に透過的にアクセスできます。フルパスリストにコンピュータ名を追加するだけで、そのコンピュータのファイルやデバイスにアクセス可能です。
OS-9は、さまざまな種類の
モジュールで構成されています。
- - kernel(カーネル本体)
- - OS9p1(カーネルのうち起動に最小限必要な部分)
- - OS9p2(OS9p1に含まれない残り部分)
- - ioman(I/Oシステムの総合管理、後にkernelに吸収)
- - RBF(磁気ディスク装置)
- - SCF(コンソール)
- - SBF(テープ)
- - PipeMan(パイプ)
- - IBF(IEEE 488)
- - PCF(PC-DOSファイル)
- - NVFM(非揮発性ファイルシステム)
- - CDFM(コンパクトディスク)
- - NRF(非揮発性RAM)
- - UCM(ユーザーコミュニケーション)
- - DSM(ディスプレイ)
- - GFM(グラフィックス)
- - MFM(MAUI)
- - NFM(ネットワーク)
- - SOCKMAN(ソケット、OS-9/ISPに含まれる)
- - IFMAN(通信インターフェース)
- - PKMAN(仮想キーボード)
- - SPF(ネットワークプロトコル)
- - 例:sc6821(MC6821用コンソールドライバ)
デバイスディスクリプタモジュール
- - 例:t0(デバイスのアドレス、設定値などを保持)
- - 例:shell、標準ユーティリティプログラム、コンパイラ
その他
ダイナミックローディング
OS-9では、
カーネル以外の多くの
モジュールが、システムの稼動中に動的に追加、削除、更新できます。
モジュールは利用中にアンロードされることはありません。
メモリ保護
MMUを持つ
ハードウェア環境では、メモリ保護機能が有効になり、システムとユーザ空間が分離されます。
マルチユーザー
OS-9は、組み込み用途だけでなく、マルチユーザー環境もサポートしています。
OS-9は、
UNIXライクな開発環境を提供しています。
OS-9LAN
OS-9には独自のLAN機能があり、他のコンピュータの資源に透過的にアクセスできます。
ウィンドウシステム
OS-9/680x0には、
X Window System、Personal-Window、G-Windows、XiBase9などのウィンドウシステムが提供されていました。
OS-9の欠点
- - 仮想記憶機能がないため、搭載された主記憶容量以上の記憶空間は使用できません。
- - 製品として販売した場合、解析やコピーが容易であり、コピープロテクトが困難です。
- - ハードウェアアクセスにドライバが必要なことに不満を感じるユーザーもいました。
- - プロセス優先順位の逆転現象が存在しました。
- - 2013年現在、OS-9単独では対称型マルチプロセッシングをサポートしていません。
OS-9/680x0
OS-9は
モトローラの16ビット
CPUである68000に移植され、その後、68020や68030などにも最適化されました。これらのOS-9/680x0は、産業用RTOSとして高いシェアを誇っていました。その理由は、680x0が産業用システムに広く採用されていたこと、
ハードウェア資源を効率的に扱えること、移植が容易なことなどが挙げられます。また、ドライバ
モジュールのサンプルコードが豊富に提供され、セルフ開発が可能であったことも評価されていました。
OS-9000(マルチプラットフォーム化)
その後、OS-9は
C言語で書き直され、OS-9000としてIntel 80386、MIPS、
SPARC、
PowerPC、ARMなど、多くの
CPUに移植されました。
OS-9が稼働する汎用コンピュータ
日本では、OS-9/6809が
富士通の
FM-7/8、FM-11シリーズ、
日立製作所の
ベーシックマスターレベル3シリーズに移植されました。また、
シャープの
X68000シリーズには、独自のウィンドウシステムを搭載したOS-9/680x0が搭載されました。
OS-9が採用された代表的な機器
OS-9は、以下のような機器に採用されました。
評価と現状
当初、マイクロウェアは
マルチメディア関連の
ミドルウェアが目的で買収されましたが、最終的に
2013年3月にOS-9とMicrowareに関わる全権利がMicroware LPに譲渡されました。OS-9は現在も開発が続けられており、v6.0のリリースも予定されています。
関連書籍
(略)
外部リンク
(略)
脚注
(略)