ITRON Vs Windows CE : 日本の組み込みシステムにWindows CEを〜

というテーマで語りたいと思う。
組み込みシステムのOSとしてWindows CEという話をした時に真っ先に引き合いに上がるのがITRONだろう。Linux!、いやOS-9!という声も聞こえてきそうだが、ITRONが、伝統的に使われているリアルタイム・モニターであることには間違いはなだろう。さて、ならば、この際、比較して見ようではないか。最初に言っておくが、私は、ITRONが嫌いではない。もうかれこれ20年以上前になるだろうか。とあるプロジェクトでRX116なるものを使った経験がある。CPUは確かNEC V50だっと記憶している。当時は、今のように組み込み系とは呼ばす、制御系あるいは、通信系などと呼ばれていた。私たちの世代は、8085に始まり、Z80,8086,80186、あるいはV20,V25,V30,V33,V50...、時には、6809,8051,8048など、挙げたらきりがないくらい様々なCPUを経験してきた。いわゆるアセンブリ言語ガリガリとコーディングしたものだ。(別に音はしないが)また、紫外線照射のROMイレイザーもよく使ったものだ。その後、8086以後の時代からは、徐々にC言語に移っていったが。私も、そんな歴史の中で育ったプログラマの一人だろう。
さて話を戻して、ITRONの登場以前は、まさに、至る所でリアルタイム・モニタを手作りしていた。タスクを生成したり、同期をとったりする機能は一般的にモニタ・マクロと呼ばれていた。今で言えば、APIというところか。当然といえば当然、世の中には多種多様なリアルタイム・モニタが存在し、このモニタマクロの仕様も様々、機能、性能はさておき、プログラムの移植性は極めて低い状況である。かくゆえ、私もヘンテコリン?なリアルタイムモニタを1本書いてしまった。
私の場合、RX116がきっかけで、ITRONなるものに初めて触れた。当時、これはすばらしいと思ったものだ。ボードが何であろうとも、CPUが何であろうとも、タスクを生成するには、CRE_TSK()とやればいい、特に気に入ったのが、メールボックスの概念だ、これにより、きちんと設計さえすれば、タスク間の癒着が防げる、アイディアが膨らみタスクの構成設計も楽しくなってきた、それから数十年が流れ、現在に至って、今ではすっかり硝子窓付きゲジゲジや、紫色の光は見られなくなったが、ITRON仕様が継続されていることは、ある種の驚きだ。勿論、色々と拡張されていることは知っているが、μITRONITRONに、劇的な違いはみられない。OSの定義がいまひとつはっきりしないが、私の認識では、ITRONRTOSではなくリアルタイム・モニタであると思っている。いや正確には、リアルタイムカーネルあるいは、スケジューラと言えるのではないだろうか。
Hiroyuki Shimizu/CodeGear,Inc.