組み込み機器ではさまざまなOSが使われている。PCと違い、組み込み機器ではハードウエアの性能がそれほど高くないことが多い。最小限のハードウエアに最小限のソフトウエアを搭載し、最大限のコストパフォーマンスを狙うのが組み込み機器開発の基本的なスタイルだ。組み込み機器の製品分野ごとに、必要なソフトウエア・コンポーネントは違う。当然ながら、OSも異なる。
そこでマイクロソフトは、組み込み機器向けに多種多様なWindows OSを開発し、提供している。「Windows xxxx(xxxxには適当な名称が入る)」と呼ばれる非PC向けのWindows OSが数多く存在する。その最新情報がET2009に併催されたマイクロソフトのプライベートセミナー「Microsoft Windows Embeddedセミナー」で披露された。またET2009のマイクロソフトブースでは、組み込み用Windowsを搭載したシステムやボードなどの実物が展示された。本レポートではPC用Windowsをベースにした組み込み用OSと、コンシューマ機器を想定した組み込み用OSの最新動向を解説する。
●PC用Windowsをそのまま組み込み機器で使う組み込み機器だからといって、PC用のWindows OSを搭載していけないということはない。ハードウエア性能に余裕のあるシステムであれば、Windows 7やWindows Vistaなどを利用することは可能だ。数量は少ないものの、そういった組み込み機器も存在する。
しかし組み込み機器の大半はPCよりもコストの制約が厳しいし、PCと違って搭載するアプリケーションがあらかじめ決まっている。そこで例えばWindows XPあるいはWindows 7をOSとして使いたいが、安価に入手したいという要求が現実に存在する。これに応えたのが「Windows Embedded Enterprise」と呼ぶシリーズである。
Windows Embedded Enterpriseシリーズは、OSそのものはPC用とまったく同じ。PC用のアプリケーションはすべて動作する。違うのはライセンス契約の内容である。デスクトップを表示しない、専用アプリケーションを動かすといった制限が設けられている。その代わりに、PC用よりも安価なライセンス料金で、15年間の長期供給をマイクロソフトから受けられる。
Windows Embedded Enterpriseシリーズは、OS名の末尾に「for Embedded Systems」という語句を加えることでPC用OSと区別する(といっても前述のようにOSの内容そのものは、PC用OSとまったく変わらない)。このシリーズには例えば「Windows XP Professional for Embedded Systems」、「Windows Vista Business for Embedded Systems」、「Windows Vista Ultimate for Embedded Systems」の3種類が存在する。最近になってこのシリーズにWindows 7が加わり、「Windows 7 Professional for Embedded Systems」と「Windows 7 Ultimate for Embedded Systems」がライセンスされるようになった。
Windows 7 for Embedded Systemsの概要。青字部分はWindows 7 Ultimateのみの機能 | Windows 7で組み込み機器に有用だと思われる機能。上の4つはWindows 7 Ultimateのみの機能 |
●PC用をベースにした組み込み用Windows
PC用Windows OSを組み込み機器に載せるときの最大の問題は、フットプリント(OSの格納に必要な記憶容量)が巨大なことだ。Windows XP Professionalのフットプリントは1.5GBあり、Windows Vistaに至っては40GBに達する。Windows7のフットプリントはWindows Vistaに比べると小さくなったものの、それでも16GBの外部記憶装置(HDDあるいはSSD)を必要とする。また組み込み用OSにはPC用OSと異なる、特有の機能がある。
そこでマイクロソフトはPC用Windows OSをベース(コア)に、組み込み用OSに特有の機能を追加した組み込み用Windows OSを「Windows Embedded Standard」シリーズとして提供している。最新のバージョンは「Windows Embedded Standard 2009」で、Windows XP ProfessionalのService Pack 3(SP3)をコアにした組み込み用OSである。Windows Embedded Standard 2009は12,000個と数多くのソフトウエア・コンポーネントで構成されており、組み込み機器の開発者は必要なコンポーネントを選択することで最適な組み込みOSを構築できる。
なおWindows Embedded Standard 2009を最小構成で組み上げたときのフットプリントは40MBしかない。PC用OSに比べると、組み込み用OSがいかに小さいかが分かる。
Windows Embedded Standardシリーズの前世代品「Windows XP Embedded」も、今のところ数多くの組み込み機器に使われている。Windows XP Embeddedは、Windows XP ProfessionalのService Pack 2(SP2)をコアにした組み込み用OSである。
このほかPC用OSをベースにした特定用途向けの組み込みOSとして、POS(Point of Service)端末向けの「Windows Embedded POSReady 2009」がリリースされている。Windows XP Professional SP3をコアに、POS端末向けの機能を追加したOSである。
●組み込み用Windowsの開発環境は次期バージョンで大きく変貌
Windows Embedded Standardの次期バージョンは、2010年第2四半期のリリースを目指して開発が進んでいる。Windows 7をベースとした初めての組み込み用Windows OSである。「Quebec(ケベック)」のコード名で開発されていたが、正式名称は「Windows Embedded Standard 2011」となった。
もう少し細かく説明すると、Windows Embedded Standard 2011のベースOSはWindows 7 Ultimate Editionであり、32bitプロセッサと64bitプロセッサの両方をサポートする。クライアントOSがベースの組み込み用Windows OSが64bitプロセッサをサポートするのは、これが初めてとなる。
Windows Embedded Standard 2011の概要。11月19日にET2009で開催されたMicrosoft Windows Embeddedセミナーの講演スライドから |
Windows Embedded Standard 2011では、OSを構成するソフトウエア部品が大きく変わる。「パッケージ」と呼ぶ単位でOSを構成する。現行バージョン(Windows Embedded Standard 2009)の構成単位であるコンポーネントに比べると、パッケージはずっと粗い単位だという。1個以上のパッケージで、OSの1つの機能セット(feature set)を実現する。機能セットの例にはメディアプレーヤー「Windows Media Player」、Webブラウザ「Internet Explorer」、セキュリティ管理「Network Security」などがある。
現在のところ、60を超える機能セットを数百個のパッケージで構成する仕組みになっている。現行バージョンのコンポーネント数が12,000なので、次期バージョンではソフトウエア部品が大幅に簡略化されることがわかる。
ここで注意すべきなのは、すべてのパッケージにマイクロソフトの署名が入ることだ。これはソフトウエアを管理することで、ソフトウエアの更新作業をマイクロソフトにとって容易にするためである。PC用Windows OSと同様に、OSのアップデートを実行するようになる。すなわちWindows Embedded Standard 2011では、組み込み用OSにもアップデートの仕組みを導入する。これは非常に大きな変化だ。
マイクロソフトがこの仕組みを導入するのは、ソフトウエア部品の管理を容易にするためだ。このことは理解できるが、OSの自動的なアップデートはPCユーザーでも全員が快く受け入れているとは言い難い。PCユーザーよりもコンサバティブと言える組み込み開発者がOSの自動的なアップデートを積極的に利用するかどうかには、疑問が残る。ただしマイクロソフトとしては、それでも良いのかもしれない。ソフトウエア部品の細かなバグ取りによる更新作業の負担そのものは、大幅に軽減されるからだ。
もう1つ重要なのは、OSのカスタマイズ作業で一度インストールしたパッケージは、インストール後は削除できないことだ。引き抜こうとしても、パッケージが自動的に戻るような仕組みになっている。これもソフトウエア部品の管理を容易にする仕組みの一環である。
OSイメージをカスタマイズする流れ。上は対話型ツールで簡素なカスタマイズを実行する流れ。下は詳細なコンフィギュレーション・ツールでカスタマイズをしていく流れ。2009年11月にMicrosoftが開催したPDC2009の講演スライドから |
OSの構成要素が大きく変わるとともに、Windows Embedded Standard 2011ではOSをカスタマイズするツールが全面的に新しくなる。
まず、ウイザード形式のカスタマイズツール「イメージ・ビルダー・ウイザード(IBW:Image Builder Wizard)を用意した。対話的にカスタマイズを進めることで簡単にOSのイメージを構築できる。ただしウイザード形式のカスタマイズでは高度な作り込みが難しい。そこで別のカスタマイズツール「イメージ構成エディタ(ICE:Image Configuration Editor)」を用意し、高度なカスタマイズの要望に応えられるようにしている。
●Windows唯一のリアルタイムOS「Windows Embedded CE」
ご存知の方が少なくないと思うが、マイクロソフトはコンシューマ機器およびモバイル機器向けに32bitのリアルタイムOSをずっと提供してきた。それが「Windows Embedded CE」(元の名称は「Windows CE」)シリーズである。Windows Embedded CEはマルチタスク機能とメモリ保護機能、仮想メモリをサポートする。PC用Windows OSに比べると機能では劣るものの、組み込み用リアルタイムOSの世界ではかなり贅沢なOSである。
Windows Embedded CEシリーズがほかのWindows OSと大きく異なるのは、x86以外のCPUアーキテクチャを主にサポートしていることだ。ARM系CPU、MIPS系CPU、SH-4系CPUをサポートする。もちろんx86系CPUもサポートしているのだが、実質的には開発環境での利用がほとんどで、開発ターゲットでx86系を搭載している機器はごくわずかである。
そのWindows Embedded CEはバージョン6.0で大幅に機能が拡張された。バージョン5.0まではプロセス数が最大32個、プロセス当たりの仮想メモリ空間が最大32MBだったのを、バージョン6.0ではプロセス数を最大32,000個と大幅に増やし、プロセス当たりの仮想メモリ空間を最大2GBに拡大した。
Windows Embedded CEの概要。11月19日にET2009で開催されたMicrosoft Windows Embeddedセミナーの講演スライドから | Windows Embedded CEの改良の歴史。11月19日にET2009で開催されたMicrosoft Windows Embeddedセミナーの講演スライドから |
このWindows Embedded CEバージョン6.0(Windows Embedded CE 6.0)はマイナーチェンジを繰り返しており、この9月には最新版であるリビジョン3(R3)が発表された。
Windows Embedded CE 6.0 R3では、7つのソフトウエアコンポーネントが追加された。Silverlight 2.0ベースのマルチメディア再生ソフト「Silverlight for Windows Embedded」、IE 6.0ベースのWebブラウザ「Internet Explorer Embedded」、Flash Player 8ベースのマルチメディア再生ソフト「Adobe Flash Lite 3.1.0」、表示画面のパンやズーム、ページ送りなどの実行ソフト「タッチ/ジェスチャ」、ネットワーク接続の自動構成ソフト「接続マネージャ」、Office文書とPDF文書の閲覧ソフト「Microsoft Office ViewerおよびPDF Viewer」、中国で普及しているメッセージング・ソフト「QQ Messenger」である。なおWindows Embedded CE 6.0 R3で追加された機能やコンポーネントなどは、SH-4系CPUでは動作しない。
●Windows Embedded CEベースの専用OS
コンシューマ系の組み込みWindows OSでは、Windows Embedded CEをベースに特定の機能を追加した専用OSをマイクロソフトが提供中だ。ハイエンドの車載ナビゲーション・システム(カーナビ)向けOS「Windows Automotive」、パーソナル・ナビゲーション・デバイス(PND)向けOS「Windows Embedded NavReady」、スマートフォン向けOS「Windows Mobile」がある。
カーナビ向けOSのWindows Automotiveは、Windows Embedded CE 5.0がベースとなっている。最新バージョンはWindows Automotive 5.5である。付け加えておくとWindows Automotiveは日本国内のカーナビ開発企業に向けてマイクロソフトが開発したOSであり、欧米のカーナビ開発企業向けには「Microsoft Auto」と呼ぶ別のOSが提供されている。最新バージョンはMicrosoft Auto 3.1。Windows Embedded CE 6.0 R2がベースOSとなっている。なおWindows AutomotiveとMicrosoft Autoの解説記事を笠原氏が執筆しているので、ご参照されたい。
PND向けOSのWindows Embedded NavReadyもWindows Embedded CE 5.0がベースである。最新バージョンはWindows Embedded NavReady 2009。サポートするCPUはARM系のみとなっている。スマートフォン向けOSのWindows Mobileは、Windows Embedded CE 5.2がベースである。最新バージョンはWindows Mobile 6.5だ。
Windows Embedded CEの最新バージョンであるCE 6.0が2006年11月にリリースされてから、3年が経過した。2009年11月時点でCE 6.0ベースの専用OSがMicrosoft Autoだけというのはいささか寂しい気がする。組み込みの開発では堅実さが必要だとはいうものの、競争の激しい製品分野では最新のOSをコアにしたプラットフォームが望ましい。CE 6.0の最新機能を活かした専用OSが続々と登場することを期待したい。
(2009年 11月 27日)
[Reported by 福田 昭]