Microsoft Windows Embedded CE

Windows Embedded Compact は、マイクロソフトが開発した組み込み機器向けの32ビットのマルチタスク/マルチスレッドリアルタイムオペレーティングシステム  。一般にはHandheld PCやPocket PC、Dreamcast、SHARP BrainなどのPDAで使われているオペレーティングシステム  として知られている。1996年11月に発表されている。近年はPNDにも採用されている採用例として[[ユピテル 。バージョン 6.0 では Windows Embedded CE 、バージョン 5.0 までは Windows CEと呼ばれていた。

1. 概要
-----

Windows 9x系やWindows NT系等と共に、Windowsファミリーに属する。パーソナルコンピュータ  用Windowsと異なりOSのみで一般に販売されることはなく、対象となる装置に組み込んで使用することを前提としている。また、組み込み用OSとしてWindows Embeddedファミリーにも位置する。かつてのPC用のWindows NTのように、複数のCPUアーキテクチャに対応する。

OSとしてはWindows NT 2.Xから仮想記憶やメモリー量を制限し、APIや機能を絞り込むなど徹底的に軽量化されたものに必要な機能のみを付加するシステムになっており、x86系に特化したノンプリエンプティブなWindows 9x系と異なりWindows NTと同様に完全なプリエンプティブ、マルチタスク、マルチスレッドのリアルタイムOSである。このため一部のダイアログがWindows NT 2.Xのものと類似しているdate=2021年9月}}。

初期のWindows NTの特色である高い移植性が保たれており、ARM、SuperHをはじめとした様々なCPUアーキテクチャーに対応している。Windows CE 6.Xからはカーネルが近代化され、メモリーは2GB、プロセス数は32000までに拡張され、プロセスのカーネル階層への移動など負荷の重いタスクへの対応や高速化が図られている。

組み込み用という性格上、機器を開発するメーカがその機器に不要な機能は削除し必要な機能のみを選んで搭載することも可能である。このため、利用者からは、Windows CEが搭載されていることを意識することなく使える機器を作ることもできる。業務用専用端末や、セットトップボックス等で用いる場合は、このようにして必要な機能を搭載する。また、実装した機能によって対価のロイヤリティが変動する。

必要な機能のみを選択して搭載することができるという特徴を生かして、Windows CEを搭載するPOSレジや、ビデオプロジェクタ、カーナビ 、ゲーム機、ポータブルAVプレーヤー 、シンクライアント端末  なども存在する。これらにはPDAに見られるようなOSとしてのGUIを実装していないものも多いが、レジでは最近タッチパネルを搭載してボタンと組み込みOSの操作で作業の効率化を図る傾向がある。

なお、これらの端末にもパーソナルコンピュータ  用Windowsと同様にWindowsのライセンスシールが貼り付けられる。

2. 名称
-----

「CE」の名称は家電を意味するConsumer Electronicsの略と言われているが、マイクロソフトによると、「CEは何かしらの略語ではないが、"Compact," Connectable," Compatible," "Companion," and "Efficient."の意味合いがある」と説明している。

3. バージョン
--------

改良により、機能追加のほか、リアルタイムイベントでの応答速度の向上などが行われている。

Windows CE 1.0 
Windows CE 2.0, 2.11, 2.12 
Windows CE 3.0 
Windows CE .NET 4.0 
Windows CE .NET 4.1 
Windows CE .NET 4.2 
Windows CE 5.0 
Windows Embedded CE 6.0 
Windows Embedded Compact 7 
Windows Embedded Compact 2013CE 4.0 から CE 6.0 までのコードネームは有名なウィスキーの名前より取られている。

3.1. Windows Embedded CE 6.0
----------------------------

次世代バージョンとして、Version 6.0が開発された。5.0までは、プロセス数は最大32個に制限され、そして各プロセスの仮想アドレス空間は32MBに制限されていた。6.0ではプロセス数制限は最大32000個までに拡張され、各プロセスの仮想アドレス空間は2GBまでに広げられる。これにより大量のメモリを消費するアプリケーションが実現可能になる。またカーネルは上位2GBのアドレス空間に置かれ、従来ユーザープロセスだったGWES、ファイルシステム、デバイスドライバはカーネル空間に統合される。これにより従来プロセス切り替えオーバーヘッドがAPI呼び出しに伴っていたが、これもシステムコールという形になり高速化される。特にネットワークへのアクセス速度は大幅に高速化されるとしている。

3.2. Windows Embedded Compact 7
-------------------------------

CE 6.0 の発展バージョンとして開発されたWindows Embedded Compact 7 は 8物理コアまでの[[%E5%AF%BE%E7%A7%B0%E5%9E%8B%E3%83%9E%E3%83%AB%E3%83%81%E3%83%97%E3%83%AD%E3%82%BB%E3%83%83%E3%82%B7%E3%83%B3%E3%82%B0]]、3GBまでの物理メモリ空間サポート、NDIS 6.1ベースのネットワークスタック、.NET Compact Framework v3.5 が特徴である。また Silverlight for Windows Embedded によるUI開発が可能になった。

3.3. Windows Embedded Compact 2013
----------------------------------

Compact 7の後継として、2013年6月に一般利用可能となった。 サポートするCPUの種類としてはx86およびARMv7T2が必要とされ、MIPS系、およびARMv5、ARMv6までのアーキテクチャサポートは削除された。

開発環境として Visual Studio 2012 update2 以降および Visual Studio 2013 、 Visual Studio 2015 が利用可能である。ARMコンパイラは Windows RT 用に用意されたものと同じARMコンパイラが利用される。そのため C++0x 拡張が利用可能である。

UI開発手法として上記Visual Studio 同梱のRAD開発ツール、Blend for Visual Studioの利用が推進された一方で、これまでのHPC Shell機能やコントロールパネルUIはサポートが削除された。.NET Compact Frameworkとしては v3.9がサポートされている。

4. アプリケーション開発環境
---------------

Windows Embedded CEのアプリケーション開発は、現在ではネイティブコード開発とマネージドコード開発の2とおり開発手法が用意されている。

4.1. ネイティブコード開発
---------------

CPUのネイティブコードでプログラムの実行ファイルを作成する方法がネイティブコード開発である。ネイティブコード開発ではデスクトップPC用のWin32 APIのサブセットが利用可能である。またデータベースやリモートツール関連でCE独自のAPIも用意されている。文字列を使用するAPIはほとんどの場合UNICODEバージョンのみが用意され、ANSIバージョンも用意されているAPIはCランタイム系やWinsock関連など一部にとどまる。

Windows CEではこれまでに以下のCPUアーキテクチャがサポートされていたことがある。

MIPS系CPU - MIPS32、MIPSII、MIPSIIFPなど
ARM系CPU - ARMv4、ARMv4I、ARMv5、ARMv6、ARMv7
SuperHシリーズCPU - SH3、SH3DSP、SH4
PowerPC
x86 - x86、x86EMこれ以外に、CEFと呼ばれる仮想マシンコードを利用した開発が一時サポートされていたが、このコンセプトはCE 4.0以降のマネージドコード開発へと引き継がれていった。

ネイティブコード開発ツールとしては当初 Visual Studio 6.0にアドオンして使用する Windows CE Toolkit for Visual C++/Visual Basic 5.0や2003 が使用されたが、Windows CE 3.0以降では無償で入手できる eMbedded Visual Tools 3.0 / eMbedded Visual C++ 4.0 が利用されるようになった。CE5 / 6.0 / Compact7 では Visual Studio 2005 / Visual Studio 2008 Pro以上でネイティブコード開発が行われるようになったが、これらの開発製品は有償で入手する必要があった。

Compact 2013 の場合、Visual Studio 2012/2013/2015 のPro以上、または無償で入手できる Community Editionに、[1]をAdd On して利用する。

4.2. マネージドコード開発
---------------

マイクロソフトの.NET Framework構想に準じたアプリケーション開発の手法をマネージドコード開発という。Windows CEのマネージドコード実行環境は.NET Compact Frameworkと呼ばれる。これはデスクトップPC向け.NET Frameworkのサブセットであり、一部共通のクラスライブラリが用意される.NET Compact Frameworkで作成されたWinFormベースのアプリケーションは、再コンパイルせずにそのままデスクトップ上の.NET Frameworkで動く場合が多い。}}。開発言語としては C#および Visual Basicがサポートされている。

.NET Compact Framework v1.0
.NET Compact Framework v2.0
.NET Compact Framework v3.5当初はマネージドコード開発のみのためにVisual Studio  2003 が利用されたが、その後の Visual Studio 2005 および Visual Studio 2008 では一つの環境でネイティブコード開発とマネージドコード開発の両方が可能になった。

4.3. RAD開発
----------

Windows Embedded CE 6.0 R3 や Compact 7 / 2013 ではアプリケーション開発手法として Silverlight for Windows Embedded が利用可能である。これはExpression Blend または [2] を利用して作成したデザインにC++で開発した処理コードを組み合わせるという、ハイブリッドな開発手法である。

4.4. デバッグ手法
-----------

作成したアプリケーションの動作確認は、PC上で実行するCEエミュレータ、またはシリアルケーブルやLAN経由でActiveSyncやWindows Mobile Device Centerにより接続したターゲット機にリモートで、それぞれダウンロードして行う。

Windows CE 2.x/3.0の時代には、Windows PC上のWin32 APIに変換する形で動作するWindows CEエミュレータが用意されていた。このAPIエミュレータを利用するには、デバッグ時に一時的にx86コードを生成する必要があった。

Windows CE 5.0/6.0 や Windows Mobile 5.0/6.xの世代では ARMコードで動作するエミュレータが用意され、ARM実機用と同じバイナリをエミュレータでそのまま動かすことができた。

Compact7 や Compact 2013ではWindows Virtual PCを利用して動作するデバッグ用OSイメージ作成用のBSPが提供され、実機と接続するのと同じイーサネット接続を利用してデバッグすることができる。ただしWindows Virtual PCで動作するデバッグ用OSをビルドするためにもそれなりのスキルが要求されるため、あまり一般的とは言えない。

4.5. その他の開発製品
-------------

Visual CE：データベース・アプリケーション開発ツール。ソフトウエアマネジメントから1998年5月12日に発売。開発元は、アメリカの SYWARE の製品。

5. プラットフォーム開発環境
---------------

Windows CE はその初期よりマイクロソフトの組み込み向けOS製品としての利用を計画されていた。やがて出荷された以下のツールキットを使用すると、ユーザーは独自のWindows CE OSを開発しカスタム機器向けの組み込みOSとして利用することができるようになった。

Windows CE 2.11 ETK 最初の組み込み向けCE開発環境、ベータ版として提供

Windows CE 2.12 Platform Builder最初の製品版組み込み向け CE開発環境、独自IDEでOSビルドが可能 Pocket Post Pet

Windows CE 3.0 Platform BuilderIDEで使用するコンポーネントを選択できるようになったWindows Based Terminal、WebPad

Windows CE.NET 4.0 Platform Builder大幅に機能向上。NDIS5.1ネットワーク、MUI機能、VoIP機能などSet Top Box

Windows CE.NET 4.1 Platform Builder
Windows CE.NET 4.2 Platform BuilderPortable Media Center

Windows CE 5.0 Platform BuilderNetwork Media Device、Nav Readyなどの派生製品がある

Windows Embedded CE 6.0これまでの独自IDEからVisual Studio 2005のアドオンへと変更された

Windows Embedded CE 6.0 R2
Windows Embedded CE 6.0 R3ネットワークプロジェクタ、PND、カラオケ端末

Windows Embedded Compact 7Visual Studio 2008のアドオンとして提供 タブレット

Windows Embedded Compact 2013Visual Studio 2012/2013/2015のアドオンとして提供

近年ではこれらのプラットフォーム開発ツールはVisual Studio Professional with MSDNのダウンロード特典を利用して入手する方法が一般的である。 2015年12月現在、[3]サイトを利用して CE.NET 4.1 から Compact 2013までのすべてのリリースを入手可能である。

5.1. Export SDK機能
-----------------

上記ツールキットを使用すると、OEMのニーズに応じたOS機能のみを搭載したカスタムWindows CE OSを作成することができるが、これらカスタム機器で正常に動作するネイティブコードアプリケーション開発をサポートするために、ツールキットにはカスタム機器で使用可能なヘッダーファイルとライブラリのみをまとめて出力する、カスタムSDK作成機能が備わっている。この機能を用いて作成されたカスタムSDK は eMbedded Visual C++ やVisual Studio 2005/2008、Visual Studio 2012/2013/2015 + Application Builder環境で使用することができる。

5.2. Shared Source
------------------

最近のPlatform Builder には再ビルド可能なCEカーネルほかいくつかの中心モジュールのソースコードが付属しており、ツールキットインストール時に簡単なEULAに同意することでOSのビルドツリー内にインストールされる。これを利用してカーネルの処理内容を理解したりデバッグ時にカーネルデバッガから参照したりすることができる。

5.3. ライセンス料
-----------

Windows CE Platform Builderを利用してカスタムWindows CE OSを開発しこれを機器に搭載して製品出荷する場合、組み込みOSとしての使用料をマイクロソフトに支払う必要がある。その際には代理店経由で契約を締結し、COAと呼ばれるシールを製品に貼付して出荷する。Windows CEの組み込みOSとしてのライセンス料は使用OSコンポーネントによりいくつかのカテゴリに分けられるが、およそ1台あたりUS $3 から US$16の範囲とされている。

6. PDAでの利用
----------

PDAと呼ばれる製品群にはWindows CEをOSとするものがあり、これらPDA用に必要なデバイスドライバやウェブブラウザなどの機能をマイクロソフトがまとめた製品が「Handheld PC」や「Pocket PC」である。「Handheld PC」や「Pocket PC」はOSを示すものではない。例えば、NECの「モバイルギア」の「MC-R530」という製品の場合は、Windows CE Ver.2.11を搭載した、Windows CE Handheld PC Edition Ver.3.01仕様の製品というようになる。

初期の頃、Windows CEの利用形態の一つとして、携帯用端末での使用が検討され、その結果x86ベースのノートパソコンよりも小型化されたキーボード付きの形状のものと、タッチパネルへのペンによる入力操作を基本とするキーボードを持たない小型のものが登場した。前者を「Handheld PC」、後者を「Pocket PC」と呼ぶ。

どちらの場合も、Windows 95以降でウィンドウを「最大化表示」で使用した状態に似たユーザインタフェースとなっており、Windowsユーザであれば、あまり違和感なく操作することができるよう配慮されている。また、携帯用という点を重視し、小型軽量で電池による長時間駆動が可能である。キーボード付きのものでもペン操作が出来るものが多い。多くはハードディスクを持たず、メモリカードスロットを実装する。

キーボード型やペン型PDAであっても、マイクロソフトが提供する上記のプラットフォームを使わず、Windows CEカーネル上に独自のユーザモード層を構築した製品もある。カシオのl'agenda、NTTドコモのポケットポストペットやシグマリオンIII、日立のNPD-10JWL/20JWL、auのトリコメール、サイバーバンクジャパンのPC-EPhoneIIなどがこれに当たる。その理由として、GUIを独自実装することでロイヤリティを下げられることが挙げられる。また、キーボード型の製品ではH/PCの開発が既に終息していること、ペン型の製品ではARM以外のCPUのサポートを中止したことも挙げられる。これらの機種の一部では、足りないモジュールを独自に補完してPocket PC用などのアプリケーションを動作させる試みが、ユーザーの間で行われている。

6.1. キーボード型製品名称の推移
------------------

Handheld PC 1.0 1997年6月25日発表。Windows CE 1.0ベース。 Handheld PC 2.0 1998年3月11日発表。Windows CE 2.0ベース。 Handheld PC 3.0  1999年2月22日発表。Windows CE 2.11ベース。 Handheld PC 2000 2000年10月10日発表。Windows CE 3.0ベース。

6.2. ペンオペレーション製品名称の遷移
---------------------

Palm PC 1998年に発表した際の名称。 Palm-size PC 1.1 1998年12月3日発表。Palm OSと酷似するということで改称。白黒インタフェース。 Palm-size PC 1.2 1999年2月22日発表。カラー表示対応。 Pocket PC  2000年7月13日発表。Windows CE 3.0ベースになったことを機に改称。ウェブブラウザ 、ファイルエクスプローラ搭載。左下にあった「スタート」ボタンが廃止され、左上のプルダウンボタンからタスクを開く形態となった。プラットフォーム準拠のアプリには終了ボタンが付かなくなった。略称：PPC。 Pocket PC 2002 2001年10月5日発表。Windows XPに準じた インタフェースを採用し、若干高速化した。これ以降はARM系CPUのみをサポートするようになった。アプリに終了ボタンが付くようになったが、実際には終了せず、Windowsの最小化ボタンに近い。 Pocket PC 2003 2003年6月30日発表。Windows Mobile 2003 software for Pocket PCが正式名称。Windows CE.NET 4.2ベース。 Pocket PC 2003 Second Edition 2004年7月6日発表。Windows Mobile 2003 Second Edition software for Pocket PCが正式名称。VGA画面をサポート。 Windows Mobile 5.0 2005年8月23日発表。インタフェースを若干変更。Officeアプリケーションの機能向上。Windows Media Player 10 Mobile搭載など。.NET Frameworkのサブセットである.NET Compact Frameworkの実行環境が搭載されている。 Windows Mobile 6 2007年2月12日発表。インタフェースを刷新し、Vista風デザインとなる。Officeスイートを改良。HTMLメールをサポートしWindows Live Mailに対応。このバージョンからWindows Mobile StandardとWindows Mobile
Professional、そして機能面ではWindows Mobile Professionalと同じだが、通信機能がオプション扱いの主にPDA向けのWindows Mobile Classicの三つのエディションに分けられる。バージョン番号はCE 5.2で、CE 6.0カーネルの搭載は見送られた。Pocket PC 2002以降はARM系CPUのみサポートされている。

7. PDAの発展と終息
------------

H/PCについては、かつてはNECの「モバイルギア」、シャープの「テリオス」、日本ビクターの「インターリンク」、日立製作所の「ペルソナ」、ヒューレット・パッカードの「Jornada」、NTTドコモが販売する「シグマリオン」などの機種があったが、いずれも生産を終了している。マイクロソフトもH/PC向けの製品をリリースしておらず、H/PC市場は事実上終息している。

Pocket PCについては、国内メーカではカシオ計算機の「カシオペア」や東芝の「GENIO e」、NECの「ポケットギア」、富士通の「Pocket LOOX」、NTTドコモが販売する「muséa」等がある。この他に、ヒューレット・パッカードの「iPAQ」やデルの「Axim」など海外メーカー製品もあり、かつては選択の幅も広かったが、各メーカとも法人用途向けに注力するようになったことや、通信販売でのみ販売する手法に切り替えたこともあり、店頭でこのタイプの端末を見ることも少なくなっている。

携帯電話の高機能化がPDA全体の販売数が減少した一因、という意見もある。Windows CEはスマートフォン向けのWindows Mobile for SmartphoneやWindows Mobile for Pocket PC Phone Editionというバージョンを出し、携帯電話へのシフトを強めている。

8. PDAの現状
---------

8.1. 日本国内での各種携帯端末への採用
---------------------

WILLCOM W-ZERO3シリーズ - 2005年12月に初代機WS003SHが発売。OSにはWindows Mobile 5.0 for Pocket PCが使われている。
NTTドコモ hTc Z、HT1100、F1100
SoftBank X01HT - スマートフォン、HSDPAの3G高速通信を初採用。
イー・モバイル EMONSTER 
シャープ Brain - 電子辞書

9. 関連項目
-------

Windows Mobile
Pocket PC - 主流はWindows Mobile搭載のスマートフォンにタッチパネルを組み合わせたもの。
Windows Automotive - カーナビゲーションシステムにおける採用例がある。
Microsoft Zune - OSとしてWindows CEベースのPortable Media Centerを採用している。
ドリームキャスト - Windows CE搭載ゲームコンソール。
タブレットPC
iPhone、iPod touch - Pocket PCおよびZuneの競合商品。Mac OS Xから派生したOSを搭載。
BlackBerry - カナダ Research in Motion社のスマートフォン。マイクロソフトによる買収の噂もあった。
Android
Palm - 上記Pocket PCの競合商品。Treoの一部機種ではWindows Mobileを搭載していた。現在では終息しつつあり、後継のWebOSを待つ段階である。
Zaurus - Pocket PCのかつての競合製品。現在は終息。
ITRON
REX OS

10. 脚注
------

10.1. 注釈
--------

10.2. 出典
--------

11. 外部リンク
---------

[4]