2006-07-02

T-Engine に乗ったやつは勝ち組か負け組か?

第9回 組込みシステム開発技術展(ESEC)の基調講演で、TRONの生みの親で、T-Engineフォーラム会長の東京大学 大学院 情報学環教授の坂村健先生の話を久しぶりに聞いた。

歯に衣着せぬ坂村先生の滑舌はいつ聞いても小気味よい。今回印象に残った坂村先生の話は次のようなものだ。

まず、坂村先生が T-Engine を作ろうと思ったきっかけについて。ビジネス系のソフトウェアエンジニアはノートパソコンとネットワークがあればどこでも仕事ができる。仕事場だけでなく、出張先や、リゾート地でさえ特に不自由なくソフトウェア開発が可能だ。それに比べて組込みソフトエンジニアの環境はどうだ。ここで、先生は「組込みソフトエンジニアは劣悪な環境で仕事をしており、士農工商、組込みソフトだ。」と発言し、会場の笑いを誘った。ちなみに、SESSAMEでは組込みソフトエンジニアの地位の低さを「士農工商、メカ、エレキ、ソフト」と表現している。

さて、話を戻すと、坂村先生は組込みソフトエンジニアの仕事の現場の状況を憂い、事務机半分くらいを占めているターゲットボートとインサーキットエミュレータなどをコンパクトにし、手のひらに乗るくらいの大きさの標準的な組込み機器の開発環境を作りたいと考えた。これが T-Engine を作りたいと思った理由の一つだと語っていた。

したがって、T-Engine は組込みソフトの開発環境のことであり、T-Engine のボード自体を組み込むわけではない。この点を勘違いしている人がたくさんいると言っていた。自分も勘違いしていた一人だ。

T-Engine という開発環境で作ったソフトは、T-Kernel で動くターゲットボード上で動かす。ターゲットボートは必ずしも T-Engine の規格に合致している必要はない。SDカードなどのカードインターフェースも必ずしも使う必要はない。

要するに、ビジネス系のソフトウェア開発では当然となった、 IBM-PC, DOS-V規格のハードウェアの流れと Windows の組み合わせという、共通プラットフォームを 組込みソフトの世界でも作ろうということなのだ。

この考え方は CPUのパフォーマンスを最大限に生かすために弱い標準とした TRON からの大きな方針の転換と言える。TRONは性能の最適化を優先させるために、CPUの違いによってはミドルウェアなどの互換性が完全ではなかった。そのために、μITRON上で動くファイルシステムやTCP/IPのプロトコルスタックなどはCPUが変わると、ターゲットCPUに適用させるためにポーティングする必要があった。

このことが、μITRONという共通OSを使っているにもかかわらず、ミドルウェアが普及しなかった理由だ。これによって、ビジネス系のソフトウェア開発のようにソフトウェアの共通部品が簡単にそろわず、作り込みなしにはミドルウェアを実装できないという弊害を生んでしまった。

そこで、T-Engine はインターフェースを強い標準で規定し、ミドルウェアの普及を促して、組込みソフトの開発を加速させるというねらいがあった。

開発環境とミドルウェアのインターフェースが共通であれば、組込みソフトの教育もやりやすいということだ。

もう一つ、今回の坂村先生の話で印象に残ったのは、メーカーが変わることによるCPUのインターフェースの違いを、FPGAで吸収するという話だ。リトルエンディアンやビッグエンディアンといった、バスの違いをもFPGAで吸収するという話だった。ザイリンクスやアルテラといった、FPGAのサプライヤーの協力をすでに得ているとのこと。

さて、ここまでの話で、ひとつ疑問が生じた。組込みソフトエンジニアにとって手に乗る開発環境があり、その開発環境のデバッグがJ-TAGインターフェースでノートパソコンがあればよいとなれば、海辺のリゾート地のホテルのデッキで潮風に吹かれながら、組込みソフトの開発をすることも可能になるだろう。ミドルウェアもポーティングの必要はなくなり、場合によってはオープンソースのミドルウェアを使うこともできる。CPUだって、一社に縛られることなく、ルネサスでもNECでも東芝でも、ARMでも何でもよくなる。

でも、待てよ。よく考えてみよう。この環境が実現されると、組込みソフトエンジニアとビジネス系のソフトウェアエンジニアの違いはいったいなんになるのだろう?

楽になるのはうれしいが、ビジネス系のソフトウェア開発のアプローチと、組込みソフト開発のアプローチが同じになることで、本当に組込みソフトエンジニアは顧客満足を最大にできるのか?

組込みソフトエンジニアを極める』では、組込みソフトエンジニアが自分のスキルを高めることが、顧客満足を高めることにつながるようにしていけば、組織の目標ともオーバーラップすることができると書いた。

組込み機器においては組み合わせ的アプローチだけでなく、すり合わせ的なアプローチを取ることが、商品の機能、性能を最適することに役立つとも主張した。

坂村先生の T-Engine 構想は、坂村先生がもっとも嫌っている PC+Windows のコンセプトを、組込みソフトで実現しようとしてはいないだろうか? (坂村先生は、講演のプレゼンテーションに、決してPowerPoint を使わない。使っているのは超漢字だ)

ユビキタス社会が実現すると、どんな組込み機器もネットワークにつながってしまう。そうなると、組込みソフトエンジニアはいままでやらなくてよかった他の機器との通信やセキュリティ対策なども組み込まなければいけない。そんな状況では、これまでやってきたような雑誌や本で勉強し、スクラッチでソフトウェアを作り込むというアプローチでは絶対に開発が追いつかない。

そうなったら、共通プラットフォームと選択可能な豊富なミドルウェアの存在はありがたい。しかし、性能の最適化にはすり合わせのアプローチも必要だ。

ようするに、ユビキタス社会になっても日本の組込み機器が競争優位を保つためには、組み合わせ的なアプローチと、すりあ合わせ的なアプローチのバランスを考えることがもっとも重要になる。

組込みソフトエンジニアを極める』の全体を通して主張したのは組込みソフトエンジニアはこのバランス感覚を磨くことがとても大事だということだ。

T-Engine 構想は非常にいい、だけれども、PC+Windows との違いを見いだすことができないと、日本の強み、日本の良さを消してしまう危険性もあるように思う。

最後に、坂村先生は、デジタル家電や携帯電話がこぞって Linux をOSに採用しようとしているのは、リアルタイムでないOSをリアルタイムシステムに無理やり適合させようとしている愚の骨頂だと言っていた。

自分もその通りだと思うが、『組込みソフトエンジニアを極める』でμITRON、 T-Engine、 Windows、 Linux を比較したときは、それぞれリアルタイム性を高めた OSを出してきているだけに、慎重にそれらの違いについて書いた。

坂村先生が言いたかったのは、もともとリアルタイムシステム向けではなかったOSをリアルタイムに適応するために無理矢理パッチを当てるのではなく、最初からリアルタイムシステム向けに作ったOSを使った方がいいということだと思う。

それはたぶん、その通りなのだろう。いま多くの家電メーカがLinuxをハードディスク内蔵のDVDレコーダに採用した結果、機動時間が我慢できないほど遅くなっていることにその違いがでていると思う。

では、T-Engine に乗ったやつは勝ち組になるのか? それは『組込みソフトエンジニアを極める』をマスターしてすり合わせと組み合わせのバランスを取ることのできた者が勝ち組になるはずなのだ。

やっぱりそうくるか・・・

0 件のコメント: