デジタル家電や携帯電話,自動車に組み込まれたソフトウェア。この組み込みソフトの基盤となるのがリアルタイムO S だ。Linux やWindows といった汎用OS とは異なる特徴をもつOS だが,ユビキタス時代に入り身近になった。理解のポイントを論ずる。
| ||
| ||
|
こうした機器に組み込まれたコンピュータ(以下,組み込みシステムと呼ぶ)には,「リアルタイムOS」と呼ばれるOSが使われる場合が多い。また,組み込みシステムで動くソフトウェアが,最近になって新聞などで頻繁に取り上げられるようになった「組み込みソフトウェア」である。つまり,組み込みソフトウェアがリアルタイムOS上で動くという構図で,リアルタイム・システムは成り立っている。
リアルタイムOS,特に筆者が長らく開発に携わったITRONのようにリアルタイム・カーネルというカテゴリに入るものは,WindowsやLinuxといった汎用OSとはかなり異なった思想で設計されている。例えば,リアルタイム・カーネル型のリアルタイムOSは極めて限られた機能しか備えていない。具体的には,プロセッサやメモリ,タイマなど,どのような組み込みシステムでも共通するハードウェア資源を扱う機能だけを標準装備する。本連載では,身近だが技術的には馴染みの薄い,リアルタイムOS,特にリアルタイム・カーネル型を中心に持論を述べたい(図1[拡大表示])。
ところでリアルタイムOSには,実は標準的な教科書が存在しない。つまり研究者や技術者の合意を得た技術的見解がない状態が続いている。デジタル家電や自動車,携帯電話に見るように,組み込みシステム分野は産業的にも技術的にも,今後の日本にとって重要な位置を占める。この重要な分野に対して筆者は,技術者や研究者からの意見を集約・整理し,組み込みシステムのかなめとなるリアルタイムOSを技術的に体系化することで貢献したいと考えている。
以下本稿では,「私流リアルタイムOS論」を展開することになるが,組み込みシステム(ハードウェア,ソフトウェア,さらには機構系や電子系)に携わる方だけではなく,多くのソフト技術者のお役に立てる情報が提供できれば幸いである。
トロン・プロジェクトに出会う
筆者がリアルタイムOSに出会ったのは,トロン・プロジェクトのリーダーである坂村健・東京大学教授の研究室に大学院生として入った17年前である。正直なところ研究室に入るまでは,トロン・プロジェクトの名前を知っている程度だった。ましてリアルタイムOSについては,全くと言ってよいほど知らなかった。そういう意味では,ごく普通の大学生だった。研究室に入って,ITRON2準拠のリアルタイムOSの開発を始めた。最初のころは,(今にして思えば)ほとんど手探りの状態だった。そして博士論文のテーマとして選び,今も継続して研究しているのは,「マルチプロセッサ・システム向けリアルタイムOS実装技術」である。
坂村研究室に在籍している間に,トロン協会におけるITRON仕様の標準化・普及活動に幹事として参加した。ちょうどこのころは,ITRONが国内で普及していった時期にあたり,それを世界標準にしたいという野望を持ってさまざまな活動を行った。1997年ごろからは,ITRON仕様の標準化活動の中心的な役割を担わせてもらい,多くの仕様の取りまとめを行った。例えば,最新のITRONリアルタイム・カーネル仕様である「μITRON4.0」と,組み込みシステムに適したTCP/IPプロトコル・スタックのAPI仕様である「ITRON TCP/IP API」については,仕様書の執筆を担当した。
このほか米国で開催される組み込みシステム技術の展示会「Embedded System Conference」には毎年出かけて、トロン協会のブースで説明員を務めた。ITRONの活動のなかで,多くの組み込みシステム業界の方々と知り合った。こうした方々と一緒に活動したことが,筆者にとって大きな財産となった。現在の立場や仕事の仕方に,大きな影響を及ぼしている。
ITRONの標準化活動からは最近卒業し,現在は組み込みシステム構築の基盤となるオープンソース・ソフトウェアを開発する「TOPPERS(Toyohashi OPen Platform for Embedded Real-time Systems)プロジェクト」に研究活動の力点を移している。その意味で,研究テーマをリアルタイムOSから徐々に組み込みシステムの設計技術一般に広げてきたと言うこともできる。TOPPERSプロジェクトでは,約20年間にわたるITRONの技術開発成果を出発点として,次世代のリアルタイムOS技術を開拓していきたいと考えている(画面[拡大表示])。
ITRONプロジェクトが行ってきた「標準化」活動は,ある程度形が見えている技術の完成度を高めていく段階では有効な手法だった。しかし,新しい技術を開拓していく段階には必ずしも適さない面がある。新しい技術の開拓段階では,実際にソフトウェアを開発し,それを実際の現場で適用しながら評価を進めることが不可欠である。TOPPERSプロジェクトでは,オープンソースの枠組みで産学官民の力を結集してこのプロセスを加速し,次世代リアルタイムOSの開発につなげることを狙っている。
TOPPERSプロジェクトで筆者は,ITRON仕様のリアルタイム・カーネルに加え,自動車制御システム向けの「OSEK/VDX OS仕様」に準拠したリアルタイム・カーネルの開発を手がけた。今でも,リアルタイム・カーネルの実装は人に負けないつもりでいる。
現場感覚を磨きながらリアルタイムOSを開発
もう一つ強調したいことがある。大学に籍を置いているが,システム開発現場の技術者の意見を積極的に聞くように努めてきたことだ。大学というと,現場の実情とかい離しているといったイメージがわくかもしれない。確かに,筆者が組み込みシステムの開発に直接関与する機会はほとんどない。しかし開発の課題やニーズを理解・分析するためには,どうしても技術者の意見を聞くことが欠かせないと考え,現場との議論を実践してきた。
逆に,大学に籍を置くことが有利な場合もある。それは,異なるアプリケーションや異なる企業の開発現場から正直な意見を聞けることである。アプリケーションが違うと,システム設計に対する考え方(例えば,安全性に対する配慮)がかなり異なるのは自然なことである。しかし,同じアプリケーションでも,企業によってかなり違った設計をしていることがある。例えば,ある企業の方から「こんな問題で困っている」と聞いたことを,同種のシステムを開発している別の企業の方にぶつけてみると,その企業では問題になっていなかったりする。
高田 広章 Hiroaki Takada名古屋大学大学院情報科学研究科 情報システム学専攻 |