ご存じの方も多いと思いますが、Windows CEのファイル構成は、PC用のWindows XPなどとはまったく異なります。そして、デバイスに組み込む際は、「OSのインストール」とは違う作業を行うことになります。それが、「OSイメージ」の構築です。
Windows CEのすべての機能は「コンポーネント」という単位で分割されています。これらの中から必要なコンポーネントを選択して、OSイメージを構築します。製品の用途により、必要なコンポーネントの組み合わせが決まってきます。例えば、インターネットにアクセスする機能を持ったデバイスであれば、「Internet Explorer」のコンポーネントを含めることになります。動画やオーディオ再生を行うデバイスの場合は、「Windows Media」のコンポーネントを選択することになるでしょう。
OSイメージの構築は、選択したコンポーネントの情報をベースに行います。Windows CEのOSイメージは、「NK.BIN」という名前の単一のファイルです(注)。このファイルをデバイスのROMや記憶デバイス上に格納します。実行時は、ブートローダがこのファイルをメモリに展開します。
Windows CE 5.0までは、マイクロソフトからリリースされているPlatform Builderという開発環境でこのNK.BINを構築します。Platform Builderの画面にすべてのコンポーネントがツリービューで表示されます。このリストからOSイメージに組み込みコンポーネントを選択してビルドすることで、必要な機能だけを持ったフットプリントが小さいOSイメージを構築します。
Windows CE 6からは、Visual Studio 2005でNK.BINの構築が可能になりました。Visual Studio 2005にWindows CE 6のプラグインをインストールすると、OSイメージの構築機能が追加されます。すると、Platform Builderと同じようにVisual Studio 2005の画面にコンポーネントがツリー表示されるようになります。以後の手順は同じなので、いままでPlatform BuilderでOSイメージを構築していた開発者も違和感なく開発できます。
OSイメージの構築環境がVisual Studio 2005に移行したことで、OSイメージの構築からアプリケーションの開発までを1つの開発環境で完結できるようになりました。
Platform Builderでも簡単なアプリケーションであれば開発できますが、もともとOSイメージやドライバの開発を前提とした開発環境であるため、「アプリケーション開発」という面に限定すれば、十分な機能が用意されているとはいえませんでした。
そこで、アプリケーション開発は別のツールを利用することになります。.NET Compact Frameworkを利用する「マネージドコードアプリケーション」はVisual Studio .NET 2003、「ネイティブコードアプリケーション」はeMbedded Visual C++で行うのが一般的です。
Visual Studio 2005からは、Windows CEのマネージドコードアプリケーションとネイティブコードアプリケーションの両方に対応しました。Visual Studio 2005のWindows CEアプリケーション開発機能については、「VS2005の組み込み開発機能オーバービュー」および「VS2005によるWindows CEアプリケーション開発」を参照してください。
もちろん、Visual Studio 2005の新機能はネイティブコードアプリケーション対応だけではありません。IntelliSenseやコードスニペット、スマートタグなどの開発補助機能がそのままWindows CEのOSイメージ構築、デバイスドライバ、アプリケーション開発で利用可能になっています。
Visual Studio 2005と比べると、Platform BuilderやeMbedded Visual C++の開発補助機能は充実しているとはいえないため、OSの機能だけでなく、開発環境の面でもかなり充実してきたといえます。
Windows CE 6ベータ版は、2006年5月に開催されたMEDC(Microsoft Mobile & Embedded Dev Con)から提供が開始されています。DVD-ROM 2枚で構成されたベータ版には、Visual Studio 2005とWindows CE 6のVisual Studioプラグインが収録されています。
次回はこのベータ版開発環境を利用して、OSイメージ作成の実際を紹介します。また、Visual Studio 2005による開発方法にもスポットを当てていく予定です。(次回に続く)
Copyright © ITmedia, Inc. All Rights Reserved.