2015年4月1日 6:10 AM

Windows 10 デバイス プラットフォームでの開発

本ブログは、Blogging Windows ” Developing for the Windows 10 Device Platform” の抄訳です。

先日 WinHEC イベントが開催されました。マイクロソフトは、シリコン、ハードウェア、デバイス関連のパートナーの皆様に Windows 向けのデバイス、ドライバー、アプリをより容易に開発していただけるように、Windows 10 に行っている取り組みについて説明しました。その主な内容は次のとおりです。

  1. Windows 10 デバイス プラットフォームを使用すると、IHV は 1 つのユニバーサル ドライバーを開発するだけで、PC、スマートフォン、IoT といったあらゆる Windows 10 デバイス ファミリに展開できるようになります。
  2. Windows 10 デバイス プラットフォームで提供される新しいツールと手法を活用すれば、Windows 10 デバイスのイメージングや開発に伴うコストや複雑さが軽減されます。
  3. 販売中および新規のハードウェア開発ボードで、Windows 10 および Windows ユニバーサル ドライバーがサポートされます。
  4. 小型デバイス向けに Windows 10 の新しい IoT エディションがリリースされます。このエディションは、ユニバーサル アプリとドライバーの実行に特化したもので、メーカーやデバイス開発者に無償で提供されます。

WinHEC イベントではこれらのメリットをご紹介するために、1 つのユニバーサル アプリのデモを行いました。ユニバーサル アプリでは、3 種類の Windows 10 エディション (PC、スマートフォン、IoT) と 3 種類のハードウェア開発ボード (Intel Sharks Cove、Intel MinnowBoard MAX、Qualcomm 410c) で実行される 1 つのユニバーサル ドライバーを通じて UV センサーと通信が行われます。ここではこのしくみについてもう少し詳しくご説明しましょう。

Windows 10 とデバイス

Windows を実行するさまざまなデバイスをサポートするために、私たちは、オペレーティング システムの開発方法と、アプリやデバイスを開発するテクニカル パートナーによる Windows への対応方法を変更する必要がありました。

Windows 10 では、すべてのフォーム ファクターで必要となる主要な OS コンポーネントを、すべての Windows 10 エディションの一部を成す共通のプラットフォームに組み込みました。PC、スマートフォン、Xbox といった Windows デバイス ファミリごとに、その共通プラットフォームに対してデバイス ファミリ固有のコンポーネント、機能、エクスペリエンスを追加し、Windows がデバイス固有の機能を活用できるようにしました。また、その共通プラットフォームには、デバイス ファミリのアプリケーションやドライバーをサポートするために必要な機能も組み込んでいます。これにより、PC を Windows 10 にアップグレードした場合にも、その PC 上のアプリや周辺機器が引き続き機能するようになります。

11-500x269

Windows のエンジニアリングをこうした手法で行うことで、Windows 10 のユーザー エクスペリエンスは、各デバイス固有のハードウェア機能や特性を活かしたものになります。たとえば、Windows 10 スマートフォンではスマートフォンならではの優れた特性 (通話機能など) が活かされ、Windows 10 PC ではマウスとキーボードに最適化されたおなじみのユーザー エクスペリエンスがサポートされます。また、現在使用している Windows Phone アプリは Windows 10 のスマートフォンでも引き続きサポートされ、過去 20 年以上愛されてきた Windows デスクトップ アプリケーションも引き続き Windows 10 PC でサポートされます。

一方、このエンジニアリング手法によるパートナー各社にとってのメリットは、すべてのデバイスが同じコア プラットフォームを基盤とするようになり、共通のアプリ プラットフォームを実行するデバイスが増えることになる点です。詳細については、Kevin Gallo のブログ記事をご覧ください。IHV やシリコン パートナーにとってのメリットは、現在も将来的にも、Windows テクノロジに対する既存の投資を新しいデバイス フォーム ファクターで簡単に活用できることにあります。

Windows デバイス プラットフォーム

Windows 10 の特徴であるユニバーサル デバイス プラットフォームにより、シリコン、ハードウェア、デバイスの開発者は Windows への既存の投資を Windows デバイス ファミリ全体で活用することができます。

21-500x238

Windows 10 デバイス プラットフォームの目標は次のとおりです。

  1. ドライバーの開発を容易にして、Windows デバイスのスケールと品質を向上させる
  2. Windows デバイスの開発および製造コストを削減する
  3. Windows でのハードウェアの開発とテストを可能にする
  4. リソースが限られた専用 IoT デバイスへの Windows の展開を可能にする

ここからは、これらの目標を達成するための取り組みをご紹介します。

ドライバー開発の簡略化

Windows 10 では、1 つの Windows Driver Kit (WDK) で、すべての Windows デバイス ファミリに対応するドライバーの開発がサポートされます。WDK によって、Windows ドライバーとデバイスの開発に必要なヘッダー、ライブラリ、ツールが提供され、Visual Studio と Windows SDK が拡張されます。

Windows 10 ではすべての Windows デバイス ファミリに対応する 1 つの Device Driver Interface (DDI) が提供されるため、IHV は 1 つのユニバーサル ドライバーを開発すれば、それをすべての Windows デバイス ファミリに展開できます。WDK を使用することで、API の適合性の検証から、すべての Windows 10 デバイスへの展開に適したパッケージの作成まで、ユニバーサル ドライバーの開発が全面的にサポートされます。

Windows 10 向けのドライバー開発をさらに容易にするために、マイクロソフトは Windows の基礎コンポーネントである Windows Device Frameworks (WDF) のソースを GitHub で公開 (英語) しました。WDF により、カーネルモードとユーザーモードのドライバーの開発は非常に容易になります。そして、ソースが利用可能になったことで、Windows 10 では WDF ベースのドライバーの開発とデバッグが大幅に改善されます。

デバイスのイメージングと製造の改善

デバイスの開発に必要なのはドライバーだけではありません。開発とカスタマイズの段階で全体的なデバイス イメージを構築し、実験環境や製造フロアにデバイスを展開する必要がありますが、Windows 10 ではそのプロセスが改善されます。

Windows 10 ではすべての Windows デバイス ファミリで Fast Flash Update (FFU) を利用できます。FFU により、安全なセクターベースのディスクのイメージングに最適なイメージ形式が定義されます。Windows 10 WDK には、OS コンポーネント、ボード サポート パッケージ (BSP)、ドライバー、アプリをすべて 1 つの FFU ファイルにまとめられるツールが備わっています。その FFU ファイルを使用すると、1 つのホスト PC あたり最大 8 つの USB 接続されたデバイスに直接フラッシュしたり、完全なパーティション分割、フォーマット、構成が行われたディスクを作成して、アセンブリの段階で追加したりすることができます。

Windows デバイスの製造コストを削減するために、Windows 10 では製造モードへのブートがサポートされています。製造モードでは、販売店が作成した最終的なイメージを使用して、製造の初期段階に一度 Windows デバイスのイメージングを行い、製造ラインで製造の検証を実施するために必要な機能のみをブートすることができます。

利用可能なハードウェアの開発

優れたデバイスを設計/開発するには、初期段階のハードウェアのプロトタイプ作成と改良が必要となることがよくあります。センサーやカメラを開発する IHV をはじめ、家電や産業用デバイスのメーカー、IoT、メーカー コミュニティにとって、デバイス開発に簡単に利用できるハード プラットフォームは必要不可欠なものです。

マイクロソフトはシリコン パートナーの協力のもと、Windows 10 と併せてハードウェア開発ボードを提供するべく取り組んでいます。各パートナーは現在、Windows ユニバーサル ドライバーを使用して Windows 10 ボード サポート パッケージ (BSP) を開発しています。このパッケージにより、デバイス エコシステムはエンジニアリング シナリオに最適なボードに対して Windows のエディションを展開することができます。

Intel Atom プロセッサでは、Sharks Cove および MinnowBoard MAX ボードがサポートされます。Sharks Cove は SoC の機能をフルに活用できるため、PC や同様のデバイスの開発に適しています。一方、MinnowBoard Max はメーカーや組み込み市場に対応した低コストのボードです。

ARM プロセッサでは、広く使用されている Raspberry Pi 2 がサポートされます。今週、マイクロソフトと Qualcomm 社は、8016 ベースの Dragonboard 410C で Windows 10 をサポートすることを発表しました。

IoT 向けの Windows 10

Windows は「PC やスマートフォンなどの汎用コンピューティング デバイス向けオペレーティング システム」であると多くのお客様が思われていることでしょう。しかし、デバイスやハードウェアを含むより広範なエコシステムに目を向けてみると、産業用制御デバイス、販売店用デバイス、医療デバイスといったさまざまな専用デバイスの制御に Windows が長年使用されてきたことがわかります。

Windows 10 の登場により、これまでデスクトップやモバイルで使用されてきた Windows が、IoT 市場向けにも活用されることになります。WinHEC イベントでは、Windows 10 の 3 番目のエディションとなる IoT エディションが発表されました。このエディションは、フットプリントとリソース消費を可能な限り少なく抑えることを目的としており、小型デバイスに適しています。

この Windows 10 の新しいエディションは、スマートフォンや PC 向けの Windows 10 と同じ単一のコア OS とプラットフォームを基盤として構築されていますが、1 つのアプリや専用 IoT デバイスに最適化されています。また、PC やスマートフォンに展開できるユニバーサル アプリやユニバーサル ドライバーを実行することもできます。一方、ストレージやメモリのコストを抑えるために、Windows の起動エクスペリエンスや標準アプリは含まれていません。その代わりに、デバイスのメーカーがデバイス エクスペリエンスを Windows ユニバーサル アプリとして構築し、起動時にそのアプリが起動されるように設定することが可能です。これにより、デバイス開発者がデバイス エクスペリエンスを完全に制御することができます。

Windows 10 への対応準備

WinHEC イベントで発表した内容やデモは Channnel 9 (英語) でご覧いただけます。WinHEC に参加されなかった方は、ぜひこちらで最新情報をチェックしてください。

デバイスやドライバーの開発に関する情報は、ハードウェア デベロッパー センターでご確認いただけます。さまざまなコンテンツや情報へのリンクが用意されており、Windows 10 WDK もこちらから提供される予定です。

IoT に関する情報については、こちらのサイトをご確認ください。

Windows Insider Program にご参加の皆様には、Windows 10 の改良にご協力いただき心から感謝申し上げます。最初の Windows 10 SDK と WDK の提供はまもなく開始される予定です。Windows 10 の最新リリースを入手されたい方はぜひ Windows Insider Program にご参加ください。

Don Box
オペレーティング システム グループ、上級エンジニア