OS-9はUNIXライクな、リアルタイムオぺレーティングシステムです。
究極の8ビットCPUであるMC6809の性能を十分引き出すための言語BASIC09を作成していた
モトローラとマイクロウェアが基板となる部分をOS-9として開発されたと記憶しています。
階層ディレクトリ、モジュール構造、ラウンドロビン、イベントドリブン、プライオリティコントロールなど当時のミニコンのオペレーティングシステムに負けないスペックでした。
さらにリアルタイム(即時応答性)に関しても考えられ、独自のモジュール構造で簡単にROM化可能な
オペレーティングシステムなのです。
産業用ロボットや、飛行機、電車の制御を行うためには、物事の事象(たとえばセンサーに何か触れた)に対して
すぐ処理をする必要があります(間に合わないと、壊れたり、落ちたり、ぶつかったり)、このような用途に
リアルタイムオぺレーティングシステムが使われます。
オペレーティングシステムの基礎を学ぶには非常にシンプルで、私はOS-9を題材にオペレーティングシステムの基礎
という講義をした経験もあります。その時の原稿が残っていれば、アップしたいんですが^^;(何処行ったんだろ)
当時パソコン用としてオペレーティングシステムといえるものにはCP/MやMS-DOSなどがありましたが
これらは、ディスクオペレーティングシステムと自ら名のっており、当時メジャーになってきたフロッピーディスクを中心に考えられたものでした。
OS-9は8ビットCPU(MPU)であるMC6809用として開発されたと言いましたが現在では多種にわたっています。
MC6809 用 LEVEL 1 (実記憶のみ)
メモリ空間は64KByte
カーネルはアセンブラで記述され、非常にコンパクトです。数キロバイトです。
アプリケーション開発環境はBASIC09、C言語
MC6809 用 LEVEL 2 (仮想記憶サポート)
8ビットCPUとしては考えられない先進的な機能仮想記憶をサポートし2Mまたは4MByteの空間を扱えます。
C言語のバージョンは1.1.5が最終だったと思います。
当時非常に高価だったハードディスクがあると、ミニコンかと思う程快適でした^^;
※ここでの仮想記憶とは、スワップでは無くCPU自身のアドレス空間を超えてアクセスする機能のことです。
MMU(メモリマネージメントユニット)を実装したハードウェアで動作していました。
MC68000/MC68010 用 LEVEL 1
16ビットCPUに移植されました。
MC68020/MC68030/MC68040/MC68050 用 LEVEL 1
32ビットCPUに移植されました。アクセス空間は4Gバイトです。
80386/80486/Pentium/PentiumPro/Celeron/PentiumII/PentiumIII 用
初の異種アーキティクチャーへの移植です。カーネルがC言語で書きなおされました、これにより他CPUへ移植が
容易になりました。
PowerPC系(PPC603/PPC604/PPC6xx) 用
モトローラ68000系の開発が正式に終了した今、あんちインテルの人はこれ使うしかないですかね(笑)、G3/G4に対応してるかは不明(調べておきます)
ARM/SH3など、いつくかのRISCチップにも対応しています。
組み込み用に使われるチップがサポートされているようですね^^;
OS-9のほかにも、リアルタイムOSと言われているものは多いです。何を選択するかは性能・価格・開発環境・メンテナンスなど
を考慮して決めればいいと思います。まあ候補がいくつかあった場合好みの問題ですけどね^^;
価格のみで決める(決まる)場合もあって、なんだろうなぁって思うこともありますが価格崩壊が進んだ今
しかたないことかもしれませんね。
なんかぐちみたいになってしまった(汗)、技術的な説明も増やしていければと思っています。