ポストPC時代のキーワード「エンベデッド」のすべて ――転換点はカー・ナビゲーション・システム
5.用途別に存在する多様化したさまざまなOS
さて,マルチタスク化,リアルタイム性,リアルタイムOSとスケジューリング方式など,リアルタイムあるいは組み込みシステムに必要な項目について述べてきた.
世の中にはさまざまなOSが存在しており,特徴も用途に合わせてさまざまである.組み込み用といっても,用途はさまざまである(表4).
さらに細かく比較するとすれば「ROM化したときのサイズ」,「ダイナミックにタスクをロードできるか」,「仮想記憶のサポートやそのためにMMU(メモリ管理ユニット)が必須となるか」,「採用した場合のコストに影響するロイヤリティ(利用料金)が必要か」など,比較検討項目はつきない.
〔表4〕 用途別に存在する多様化したさまざまなOS
OS
|
ユーザ
単位 |
プログラム単位
|
実時間
保証 |
ROM化
|
おもな用途
|
ソース公開
|
ITRON | プログラム | タスク | ◎(数μs) | 必須 | 家電,組み込み | あり |
VRTX | プログラム | タスク | ◎(数μs) | 必須 | 制御,組み込み | なし |
pSOS | プログラム | タスク | ◎(数μs) | 必須 | 制御,組み込み | なし |
VxWorks | プログラム | タスク | ◎(数μs) | 必須 | 制御,組み込み | なし |
Nucleus | プログラム | タスク | ◎(数μs) | 必須 | 制御,組み込み | あり |
OS 9 | マルチユーザ | プロセス | ○(数十μ秒) | 可 | 制御,組み込み | なし |
Hard Hat Linux | マルチユーザ | プロセス | △(オプション) | 可 | 制御,組み込み | あり |
Embedix | マルチユーザ | プロセス | △(オプション) | 可 | 制御,組み込み | あり |
WindowsCE | シングル・ユーザ | プロセス | × | 可 | PDA,組み込み | なし |
Unix | マルチユーザ | プロセス | × | 不可 | サーバ,WS | あり |
Linux | マルチユーザ | プロセス | × | 不可 | サーバ,パソコン | あり |
WindowsNT | マルチユーザ | プロセス | × | 不可 | サーバ,パソコン | なし |
Windows95 | シングル・ユーザ | プロセス | × | 不可 | パソコン | なし |
●制御系から入って成功したVxWorks
市販リアルタイムOSとして,もっとも成功したのが米国WindRiver社(http://www.windriver.co.jp/)のVxWorksである.もともとはLab系,制御系を中心にネットワークを前提としたUNIXライクな開発環境が使えるリアルタイムOSであることを売りとしていた.現在では,さまざまなディジタル家電に採用される代表的な組み込みOSとなっている
▼UNIXライクな仕様が開発効率を高めた
VxWorksの特徴は,UNIXワークステーションをホスト開発マシンとすることである.ターゲット・ボードとLAN接続して,UNIXライクに組み込みアプリケーションが開発でき,最終的にROM化も可能だった.このほかにも,組み込みOSとしてTCP/IPを標準的に取り入れたこと,API(application programming interface)としてソケット・インターフェースを含めたUNIX互換のランタイム・ライブラリを実装したことも特徴と言える.
このためUNIXのソフトウェア・エンジニアにとっては,アプリケーションを開発しやすいOSとなった.ターゲットに搭載されたシェルは,UNIX上で開発を行っているかのような透過性を持たせることができ,効率を高めた.これは,当初VxWorksがターゲット側にシェルを持ち,デバッグ情報(シンボル・テーブル)をターゲット上にダウンロードし,シェル上でインクリメンタルにアプリケーションを開発していくスタイルを採っていたためである.
当時,リアルタイムOSの用途は制御系がほとんどで,ターゲットはVMEボードなどのFA向けボード・コンピュータであった.ターゲットが搭載しているメモリも1M~4Mバイト程度と,当時としては比較的潤沢で,LANコントローラも標準搭載されていた.こうした制御系ボード・メーカからすれば格好のOSがVxWorksであったわけである.
▼VxWorksの開発環境
いまでこそ知られることは少なくなったが,VxWorksのVxはVRTX(バーテックス)という市販リアルタイムOSの名前から取った文字であり,VRTXの開発を効率よく行うための開発環境がVxWorksの始まりであった.その後,カーネルをpSOSに乗り換え,最終的には独自のWINDカーネルに移行した.こうしてVxWorksはリアルタイムOSの名前となり,開発環境としてTornadoを提供している.
Tornadoでは,デバッグ情報をホスト側で保持し,ダウンロード経路もネットワークにとらわれず,余計なデバッグ・リソースをターゲット側に負担させないようにした.その背景には,家電製品などネットワーク機能や余分なターゲット・リソースをもてない製品が対象になってきたことがあげられる.