OS-9
出典: フリー百科事典『ウィキペディア(Wikipedia)』
OS-9(オーエスナイン)は、マイクロウェア(現RadiSys)によってモトローラの8ビットMPU MC6809のために開発されたリアルタイムオペレーティングシステム(以下、RTOS)である。現在では680x0/x86/SH/ARMなど、幅広いCPUに対応している。
当時、マイクロウェアは、モトローラの依頼により共同でプログラミング言語Basic09を開発していた。この言語の開発・実行環境としてマイクロウェアが開発したのがOS-9である。
目次 |
[編集] 特徴
[編集] プリエンプティブマルチタスク
RTOSは、一般のマルチタスクOSと異なり、高負荷の状態が持続してもシステムの停止に至ることはほとんど無い。これは、RTOSが各タスクの切り替えを強制的に(プリエンプティブと呼ぶ)、確実に行う事、あらかじめ決められたタスクの優先順位を厳密に管理する機能を持っているからである。
[編集] マルチプロセス
他の組み込み用RTOSはマルチタスクをスレッドにより実現している事が多いが、OS-9は各タスク間のメモリ保護を行えるプロセスモデルを採用している。
[編集] モジュール構造
OS-9を構成する全ての部分は、 モジュールと呼ばれる統一された構造を持っており、必要な機能だけを選択して使用することができ、自由度の高い構造になっている。これにより、OS-9は以下の特徴を有する。
- 移植性が高い - 移植に必要なモジュールだけを新たに作成すればよい。個々のモジュールも容易に作成可能。
- アップグレードが簡単 - 対象モジュールのみ交換可能。再起動の必要も無い。
- セキュリティに強い - 各モジュールにCRCがあり、正当なモジュールのみロード可能。
- デバッグが簡単 - OS自体が構造化されているため、問題点の切り分けが行いやすい。
- エディション - モジュールにエディションがあり、同一名のモジュールがメモリ中に複数ある場合、最新のモジュールのみ有効となる。ROM化されたシステムをアップグレードする場合、新しいモジュールのROMを追加するだけでよい。
- ROM化可能 - 変数はカーネルにより別領域に確保されるため、各モジュール(プログラム)は、全て主記憶空間内のROM上で直接実行可能である。
- また全てのモジュールがリロケータブルなモジュールになっていることからROM化特有のアドレスを意識しないでプログラミングすることが可能である。
- 再入可能(リエントラント) - プログラムがリエントラントであることはOS-9において必須の条件であり、リエントラントでないコードは利用できない。なお、プログラムは自身を実行中に書き換えてはならない(自己書き換えコードはリエントラントではない)。
- メモリ使用効率が高い - プログラムがリエントラントであるため、コード領域を各プロセスで共有することが可能になり、メモリの利用効率が高くなる。また、OS自身がモジュールの集合であるので、必要なモジュールのみをロード(あるいはROM化)すればよい。
- 遅い - 汎用性は高いが、専用に設計されたモノリシックOSに比べるとオーバヘッドが生じる。例えばモジュールのCRCチェックは8ビットCPUには重い負荷であった。
[編集] OS-9のモジュールの種類
- カーネルモジュール
- OS9p1
- OS9p2
- OS9p3 (日本語版のみ)
- ファイルマネージャモジュール
- RBF - Random Block File Manager (ディスク)
- SCF - Sequencial Character File Manager (コンソールなど)
- SBF - Sequencial Block File Manager (テープ)
- PipeMan - Pipe File Manager (パイプ)
- IBF - IEEE 488 Interface Bus File Manager (エーアールケーコーポレーション製)
- PCF - PC-DOS equivarent File Manager(PC-DOSファイルの操作)
- NVFM - non-volatile file manager(CD-iのデータ保存のための、ディレクトリを持たず、バッファリングしないファイルシステム)
- CDFM - Compact Disk File Manager
- NRF - Non-Volatile RAM File Manager
- UCM - User Communication File Manager
- DSM - Display Support Manager
- GFM - Graphics File Manager
- NFM - Network File Manager
- SOCKMAN - Socket File Manager (OS-9/ISP - Internet Support Package に含まれている)
- IFMAN - 通信インターフェース・ファイル・マネージャ
- PKMAN - 仮想キーボード・ファイル・マネージャ
- デバイスドライバモジュール
- (例)sc6821 - MC6821用汎用コンソールドライバ
- デバイスディスクリプタモシュール
- (例)t0 - デバイスのアドレス、設定値などを保持
- プログラムモジュール
- データモジュール
- (例)init - システム初期化定数などを保持
- BASIC中間コードモジュール
- 共有ライブラリモジュール
- runb - MW-BASIC/Basic09ランタイムライブラリ
- csl - C language shared library[3]
- psl - presentation support library(CD-i用)
[編集] ダイナミックローディング
カーネル以外のすべてのモジュールは、システムの稼動中、任意の時点で追加、削除、更新が自由に行える。例えばデバイスドライバは任意の時点でメモリにリンク(ロード)/アンリンク(アンロード)が可能であるため、デバッグ中も、カーネルを壊さない限りシステムを再起動する必要がない。
またモジュールをメモリにリンク(ロード)するときにリンクカウントがインクリメントされるほか、モジュールを利用(オープン)する度にリンクカウントがインクリメントされ、プロセスでモジュールの利用が終わるとリンクカウントがデクリメントされる仕組みがある。よってモジュールを利用しているプロセスがある間は、故意にアンリンクしようとしてもアンリンク(アンロード)されない。またリンクカウントがゼロになるとモジュールがメモリからアンリンク(アンロード)される。
[編集] メモリ保護
ハードウェアがMMUを持つ場合、メモリ保護機能が有効となる。システム空間とユーザ空間が分離され、また、各ユーザプロセス間も分離される。デバッグ中のユーザープロセスが他のプロセスやシステムを破壊することがない。OS-9/6809では特にLevel2と呼ぶ。
[編集] マルチユーザ
組み込み用途だけではなく、一般のコンピュータとして使用可能であり、UNIXと同様のマルチユーザの機能を備えたTSSの環境がある。ユーザ、グループ別にファイルやプロセスのアクセス権がある。
[編集] UNIXライク
以上のようなRTOSの上で、UNIXライクな開発環境が構築されている。簡易なものであるがシェルも実装されており、ファイルシステムも階層構造を始めとしてUNIXに近い機能を実現している。
GNU/LinuxやFreeBSDのような、個人でも容易に入手可能なUNIX互換OSや、それらを実行可能な32bitパーソナルコンピュータが出現する以前は、パーソナルレベルでUNIXライクなシステムとなるとOS-9の他にほとんど選択の余地は無く、OS-9はPoorman's Unix(貧者のUNIX)と呼ばれる事もあった。[要出典]
[編集] OS-9LAN
OS-9には独自のLAN、OS-9LANがある。LAN上の他のコンピュータの資源に対して、透過的にアクセスが可能な優れたものである。フルパスリストの先頭にコンピュータ名を追加するだけで、そのコンピュータのファイルやデバイスにアクセス可能で、例えばシェルからリダイレクトして、LAN上の他のコンピュータに接続されたプリンタに出力可能である。
なお、開発は、当初、星光電子により、OS-9/6809と富士通FM-11+ARCNetという構成でおこなわれた。
X68000用のOS-9LANは、マイクロボードより販売されていた。
[編集] ウインドウシステム
OS-9/680x0には以下のようなウインドウシステムが発売された。
- X Window System:マイクロウェアが移植。Motifも付属。
- Personal-Window:マイクロウェアジャパンが、X68000のために開発。
- G-WINDOW: ドイツのGESPAC(代理店:フォークス)が開発。
[編集] 欠点
- UNIXと異なり、仮想記憶機能が存在しないため、搭載された主記憶容量以上の記憶空間が使えない。(もっとも、仮想記憶を利用するとリアルタイム性が担保できなくなるため、RTOSとしての意義がなくなる。)
- 製品として販売した場合、極めて簡単に分析、解析が可能である。また、実際にメモリ上にあるモジュールを保存することでコピーが可能であるため、いわゆるコピープロテクトが原理的に不可能である。
- PC用のOSとして見た場合、8bitや16bit時代のユーザには、マルチタスク・マルチユーザのメリットが理解されなかった。
- ユーザプログラムがハードウェア資源に直接アクセスできるCP/MやMS-DOSなどのOSに慣れたユーザは、アドレス空間をユーザとスーパバイザに分離したOSにおいて、ハードウェアへのアクセスにドライバが必要なことに不満を述べることが多い。(アドレス空間を分離するか否かは、OS-9のレベルやバージョン、使用するハードウェアによる。)
- プロセス優先順位の逆転現象が存在するようで、マイクロウェア社が顧客向けに発行する機関紙 "Microware Pipelines" においては、優先したいプロセスのプライオリティを極端に低く設定する事例が頻繁に紹介されていた。
[編集] OS-9/680x0
OS-9は、モトローラ社の16ビットCPU68000に移植された。以後、6809用はOS-9/6809、68000用はOS-9/68000と呼称されるようになった。その後、68000が68020、68030とシリーズ展開されるようになると、それらに最適化したOS-9/68020、OS-9/68030が開発された。
これらOS-9/680x0は、産業用RTOSとして高いシェアを占めていた。これは、20世紀末には、産業用システムのMPU(CPU)に680x0が広く採用されていたこと、ハードウェア資源を効率的に扱う多くの特徴を持っていること、OS-9自体の移植(ポーティング)が容易なことから必然的にそうなったのである。
また、アプリケーションをセルフで開発できることも評価されていた。ある程度規模の大きな産業用システムではVMEバスベースのシステムが採用されることが多かったが、これら自体によるセルフ開発が可能である。OS-9は現在でも数少ない、ターゲット上でセルフ開発が出来るRTOSである。(ただし、登場時のUNIXと同程度のCUIを利用する必要があり、現在ではWindowsで動作するGUIのクロス開発環境Microware Hawkによる開発が主流である。)
Ver.3からはセマフォ、マルチスレッド機能も追加され、必要な場合はスレッドを使用することも可能となった。
[編集] OS-9000(マルチプラットフォーム化)
その後、OS-9は全体がC言語で書き直され、OS-9000としてIntel 80386、MIPS、PowerPC、ARM、日立 SH-3等に移植された。Cで書かれた事だけではなく、様々な機能の追加による肥大化もあって、多機能版カーネル(デバッグ機能つき)と小型版カーネル(アトミックカーネル)の2種類に分化した。アメリカではCで書き直されたOS-9000/68000も開発された。
現在商標は統一され、OS-9のみとなっている[4]。6809用、680x0用OS-9の実体は従来の機械語で書かれたOS-9、その他CPU用OS-9の実体はOS-9000である。
[編集] OS-9の稼動する汎用のコンピュータ
日本では、OS-9/6809が富士通FM-7/8シリーズ、FM-11シリーズに移植され富士通から発売、日立製作所のベーシックマスターレベル3シリーズやMB-S1にも移植された(開発はどちらも星光電子)。
また、シャープのX68000シリーズには、独自のウインドウシステム(Personal Window)を装備したOS-9/680x0 Ver.2.4が、OS-9/X68000としてシャープから販売された(開発はマイクロウェアシステムズ)。その後継製品として、マイクロウェア社から、X68030用のOS-9/X68030 Ver.2.4.3も発売された。
他に、フォークスから、FM-11やFM-16β、PC-9801に68000ボードを搭載してOS-9/68000を稼動させる製品、FM-Rに68020ボードを搭載してOS-9/68020を稼動させる製品が発売されていた。
初期のOS-9/68000の開発環境として忘れられないものが、星光電子を始めとした国内のデベロッパーが広く使用していたマイクロボード(マイクロウェアジャパンの親会社)の製品である。同社のVMEバスボードを筐体に収めてセット販売したもので、いわば純正品(?)である。同社からはVMEバスの各種カードが産業用として発売されたが、それ以外にも、PC/ATマザーボードと同規格の基板にMC68030を載せたPCスタイルの製品も発売された。
もちろん、マイクロボード以外にも多くのメーカーのVMEバス、MultiBus、PCI/CompactPCIバスのボードがOS-9に対応していた(いる)。例えば、モトローラ(代理店:丸文)、アドバネット、アバールデータ、オムロン、シャープ、橘テクトロン、タンバック、電産、東京エレクトロン デバイス、フォークス、フォース・コンピュータ(代理店:インターニックス)、マイクロクラフトなどの製品である。(五十音順)
米国では、AppleII用の6809カード(The Mill)がOS-9/6809を標準OSとしていた他、タンディカラーコンピュータ(CoCo)、MM/1等、また、PC/ATに68020カード(アルプス電気製)を搭載してOS-9/68020を稼動させる製品が発売されていた。また、Macintosh用OS-9/68000も発売されていた。これは、全てがスーパバイザモードで動作する当時のMacintosh OSをうまく利用し、TOOLBOXを利用可能としていた。
なお、マイクロウェアシステムズにより、OS-9000が富士通のFM-TOWNSに移植されていたが、結局発売されなかった[要出典]。
[編集] OS-9が採用された代表的な機器
- Motorola社のPDA
- デジタルサンプリングシンセサイザー フェアライトCMI (Fairlight CMI)
- BMW 750iシリーズ純正カーナビゲーションシステム
- マスプロ電工 カーナビゲーションシステム
- ソニー、フィリップスのCD-i(セットトップボックスの統一規格で、OS部分はCD-RTOSと呼ばれた)
- 日立製作所の銀行用ATM
- レーザープリンタ用エンジン
- TCP/IP用ルータ
- 携帯電話
- POS端末
[編集] 関連書籍
- 洋書
- Dale L. Puckett and Peter Dibble The Complete Rainbow Guide to OS-9, ISBN 978-0-932471-00-0
- Dale L. Puckett and Peter Dibble The Complete Rainbow Guide to OS-9 Level II, Volume I: A Beginners Guide to Windows, ISBN 978-0-932471-09-3
- Peter C. Dibble - OS-9 insights : an advanced programmers guide to OS-9, ISBN 978-0-918035-03-5
- Peter C. Dibble - OS-9 INSIGHTS : AN ADVANCED PROGRAMMING GUIDE TO OS-9 3rd.Ed., ISBN 978-0-918035-05-9
- Mark A. Heilpern - The OS-9 Primer, ISBN 978-0-918035-04-2
- 和書
- 有吉久 - 『OS-9&6809活用プログラミング』《ソフトマインド (2)》、CQ出版
- 岡村周善 - 『VMEシステム完全マスタ―68010ボード設計からOS-9の移植まで』、CQ出版
- 千葉憲昭 - 『68000システムの製作全科(上) ―CPUの詳細からOS-9の移植開始まで―』, 《HARDWARE BOOKS 6》, 技術評論社 1988年, ISBN 978-4-87408-972-9
- 千葉憲昭 - 『68000システムの製作全科(下)』, 《HARDWARE BOOKS 7》, 技術評論社 1988年, ISBN 978-4-87408-976-7
- デイルL.パケット/ピーター・ディブル・共著 - 『RAINBOW OS-9ガイド』 西脇弘 訳 1987年
- 矢野公正 - 『OS-9/68000マルチユーザズガイド』 ,スピリットパブリッシング 1990年
- 後藤田昌男・遠藤敬治 共著 - 『OS-9テクニカルガイド初級編』, 技術評論社 1984年, ISBN 978-4-87408-264-5
- 高澤嘉光 - 『OS-9/68000』, 共立出版株式会社 1989年, ISBN 978-4-320-02401-4
- 中島浩司 - 『OS-9/68000プログラマーズハンドブック―第1巻 オペレーション編』, ケルビンシステムズ 1991年
- 中島浩司 - 『OS-9/68000プログラマーズハンドブック―第2巻 Cコンパイラ活用編』, ケルビンシステムズ
[編集] 外部リンク
- 株式会社アバールデータ - リアルタイムOS:OS-9
- 株式会社ルネサステクノロジ - リアルタイムOS
- 株式会社エーアイコーポレーション - 「OS-9向けに組込み用電源断対応ファイルシステム『RTFiles』の供給を開始」
- nikkeibp.jp - 「日通工、電話やLANに接続できるタッチパネル式情報端末『Addシリーズ』を発売」
- NECインフロンティア株式会社 - テレデータターミナル Addシリーズ
- Sun Java Platform Resellers Deliver Java Technology for Embedded Devices - Microware
- Real-Time Services Inc. - OS-9 World Wide Archive