Microsoft Windows の重要な特性の 1 つとして挙げられるのが、テクノロジの変化やユーザー層の拡大に応じて長年の間に示されてきた、アーキテクチャの柔軟性です。1 人のユーザーが生産性ソフトウェアを使って単独で作業するためのオペレーティング システムとして誕生したものが、今や、多種多様なハードウェアおよびソフトウェア技術、互いに連携するさまざまな Windows 製品、そしてコンピューターの利用に対するきわめて柔軟なアプローチを支える基盤となっています。Windows 8 では、チップセットからエクスペリエンスに至るまで、抜本的に Windows を刷新しています。そして、このイノベーションの主要な一角を成すのが、刷新された Windows を ARM® プロセッサ アーキテクチャへと対応させることです。この取り組みは、PC というものに対する見方を大きく広げ、従来の枠を超えた幅広いフォーム ファクターやデザインの実現を目指すものでもあります。ARM 対応の Windows によって可能になるクリエイティブな PC デザインは、Windows OS のさまざまな新機能と併せて、新しい、妥協のない PC の世界をユーザーにお届けするものとなります。

ここで技術的な基盤をご紹介する ARM プロセッサ向け Windows を、この記事では Windows on ARM (WOA) と呼びたいと思います。WOA は、Windows Server や Windows Embedded、Windows Phone などと同じ、Windows ファミリーの一員として登場します。これらの製品と同様に WOA も Windows を基礎として開発されており、他の Windows 製品との共通性は非常に強く、かなり多くのコードを Windows 8 と共有し、世界最大のコンピューティング エコシステムの一部として開発、販売、サポートが行われます。今回は主に WOA の開発過程について扱い、一部の機能とその提供形態をご紹介したいと思います。x86/64 版の Windows 8 と同様に、この製品 (群) のビジネス面やマーケティング面については、今後の発表で明らかになってくるでしょう。今回の記事では、WOA のマーケティングや販売についてではなく、WOA の製作についてお話しします。

この記事では WOA に関する私たちの取り組みにしか焦点を当てていませんが、同時に Intel および AMD とも、提供されるさまざまな種類の PC について、これまでにないほど深いレベルのコラボレーションが行われています。強力でリッチな性能を備える x86/64 プロセッサを活かした Windows 8 のイノベーションや、Intel が CES で実演したような新しい低電力プロセッサへの取り組みのために、これらのプラットフォーム向けの Windows にも、WOA と同等の強いコミットメント、エンジニアリング面でのより大規模な投資、新しい強固なデザイン、そしてアーキテクチャの改良が求められています。この記事で扱うのは ARM プロセッサ向けのエンジニアリングですが、これは ARM プラットフォームへの導入のために新たに行われた作業に限ったものではありません。言及されている取り組みの多くは、x86/64 プラットフォームと Windows 8 にも直接寄与するものであるという点にご注目ください。Intel および AMD からは、タブレット、ノートブック、Ultrabook™、オールインワン、デスクトップをはじめとする多様なフォーム ファクターにわたって、Windows 8 の一部となるさまざまな新製品が登場します。Windows 8 の新機能を活用すると同時に、Windows 8 に対して新たなハードウェア性能を提供してくれるこれらの製品に、私たちはこの上ない期待と支持を寄せています。

"箱から出したまま" の状態の WOA の使用感は、x86/64 の Windows 8 とまったく同様です。サインインの方法も、アプリの起動方法も変わりません。新しい Windows Store の利用方法も同じです。新しい [Start] (スタート) 画面、Metro スタイル アプリ、Internet Explorer、その他のアクセサリ類など、Windows に備わっている機能は同じように使用することができ、ご希望であればエクスプローラーやデスクトップ版の Internet Explorer といった Windows デスクトップのツールも利用可能です。すばやく滑らかなエクスペリエンスも変わりません。つまり WOA は、ユーザーが期待するとおりの使用感を実現する設計となっているのです。WOA はクリエイティブな PC デザインを可能にし、OS のさまざまな新機能と併せて、妥協のない新たなエクスペリエンスをもたらします

エンジニアリング面に深く踏み込んだブログとして、Building Windows 8 では長めの記事が多くなっていますが、今回も例外ではありません。記事の中で詳しく扱う重要なポイントについて、ここで簡単にまとめておきます。

  • Windows on ARM (WOA) は、Windows を基礎として開発された、Windows ファミリーの新たな一員です。他の Windows 製品との共通性は非常に強く、かなり多くのコードを Windows 8 と共有し、Windows という世界最大のコンピューティング エコシステムの一部として開発、販売、サポートが行われます。独自の性能やフォーム ファクターを持つ新しいカテゴリの PC の実現を目指す WOA は、Windows が所属するエコシステムに加わることとなる、新たなパートナー企業各社によってサポートされています。
  • WOA PC はまだ開発の途上にあり、x86/64 の Windows 8 向けに設計された PC と同時期に出荷することを目標に、PC メーカーと協力して取り組みを進めています。これらの PC は、NVIDIA、Qualcomm、および Texas Instruments が提供する独創的で革新的なハードウェア プラットフォームを基に構築され、Windows on ARM という共通の OS 基盤を持つことになります。どの PC も同一の Windows OS バイナリを実行するという点で、業界でもユニークなアプローチと言えます。現在 PC メーカー各社では、WOA 専用にゼロから設計された優れた PC の開発が進められています。
  • Windows Store の Metro スタイル アプリでは、WOA と x86/64 の Windows 8 の両方をサポートすることができます。開発者は、新しい Visual Studio 11 のツールを使って、C#、VB、XAML、Jscript、HTML5 などの言語で WinRT (Metro スタイル アプリ開発のための Windows の API 群) 向けにコードを書くことで、WOA をターゲットとするアプリケーションを開発することができます。WinRT をターゲットとするネイティブ コードも C および C++ でサポートされ、アーキテクチャを横断したターゲット設定ができ、Windows Store による配布が可能です。WOA は、既存の x86/64 デスクトップ アプリの実行、エミュレーション、および移植には対応しません。WinRT による OS のサービスまたはシステムのサービスのみを使うコードであれば、アプリに使用することができ、Windows Store を通して WOA と x86/64 の両方に向けて配布可能です。ユーザーによるソフトウェアの入手は、デバイス ドライバーを含め、すべて Windows Store と Microsoft Update または Windows Update 経由で行われます。
  • WOA では、新しい Metro スタイル アプリをすべてサポートできます。これには、Microsoft が提供するメール、予定表、連絡先、写真、およびストレージ関連のアプリも含まれます。さらに WOA では、ハードウェア アクセラレーションを利用する HTML5 について、Internet Explorer 10 による業界最先端のサポートが提供されます。WOA は、その他の業界標準のメディア フォーマット (ハードウェア アクセラレーションや処理のオフロード化に対応するものなど) や、業界標準の各種ドキュメント フォーマットにも対応します。Microsoft はすべての場面において、使用するアプリやサポートするフォーマットをエンド ユーザーが選択および管理できるように考慮しています。
  • WOA には、新しい Microsoft Word、Excel、PowerPoint、および OneNote のデスクトップ版が同梱されます。コードネームで "Office 15" と呼ばれるこれらの Office アプリケーションは、タッチ操作や電力/リソース消費量の削減を強く意識した設計でありながら、ユーザーに十分な機能を提供するものとなっており、ドキュメントの互換性も完全に確保されます。WOA では、Windows デスクトップのエクスペリエンスがサポートされます。これには、エクスプローラーやデスクトップ版 Internet Explorer 10 のほか、標準の Windows デスクトップ機能の大部分が含まれます。これらは、タッチ操作や電力/リソース消費量の削減を強く意識した設計となっています。
  • WOA により、最適な設計に向けてそれぞれゼロから作り上げられたハードウェア、ファームウェア、WOA ソフトウェアによる、統合的なエンド ツー エンドの製品の登場が期待されます。WOA の開発は、Microsoft、ARM ライセンシー、PC メーカー、各種コンポーネントおよびアクセサリの開発企業を巻き込んだエンジニアリングの取り組みとして進められてきました。さまざまなサブシステムが、WOA 向けに新たに作成されたり、大幅に再構築されたりしています。パートナー各社の WOA PC は、ハードウェア、ファームウェア、Windows on ARM ソフトウェアを含む統合的なエンド ツー エンドの製品として提供されます。一般的な電化製品が独自のハードウェアとソフトウェアの統合的な組み合わせを前提とするのと同様に、Windows on ARM ソフトウェアも、新しい WOA PC と別に単体で販売または配布されることはありません。提供されたソフトウェアは、PC の実用的な寿命が終わるまで、サービスや改良を受けられます。
  • x86/64 の Windows 8 の次のマイルストーン リリース前後には、招待制のクローズド プログラムとして、限られた数のテスト PC が開発者やハードウェア パートナーに提供される予定です。これらのデバイスは、その時点で一般にリリースする x86/64 の Windows 8 と同じブランチを実行するものとなります。これらは今後登場する PC を示唆するものやサンプルとなるものではなく、あくまで WOA 専用ハードウェアを使用するハードウェアおよびソフトウェア エンジニア用のツールです。
  • x86/64 の Windows 8 のベータ版である Windows Consumer Preview は、2 月末までにダウンロード提供が開始されます。Windows 8 の次のマイルストーンであるこのリリースは 7 言語で提供され、だれでも自由にダウンロードできます。

この記事は次のセクションに分かれています。「パートナーとの協力」、「アプリの提供」、「ARM 向けのエンジニアリング」(各種サブシステムについてお話しします)、「ARM 向けの開発」「WOA PC の提供」、そして最後に「次のステップ」です。

また、この記事でご紹介する WOA の動作を実演した、短いビデオをご用意しました。


ビデオをダウンロードしてお好みのメディア プレーヤーで再生することができます:
高画質 MP4 | 低画質 MP4

パートナーとの協力

WOA の開発のスタート地点となるのは、ARM プロセッサを製作し、必要なサブシステムと組み合わせて、従来のマザーボードに相当するパッケージを作成する企業とのパートナーシップです。WOA の "マザーボード" は、多くの PC ユーザーが慣れ親しんでいるようなボードではなく、複数のシリコンの層をきわめて小さなフォーム ファクターに詰め込んだパッケージのようなものです。これを "System on Chip" (SoC) と呼びます。

System on Chip のディスクを指先に載せた手の画像
CES 2011 のデモで披露された System on Chip (SoC) (AP 通信、Julie Jacobson)

各 ARM ライセンシーは、それぞれ異なるアプローチで機能の選択や製品開発上のトレードオフを行い、シリコンのパッケージを設計します。これによって、多様性に富んだ ARM ベースの製品が市場に提供されます。ARM には単一の決まったエクスペリエンスはなく、他のオペレーティング システムで見られるように、たとえ同じ ARM CPU であっても、別のコンポーネント、ドライバー、ソフトウェアなどと組み合わせれば、結果として得られるエクスペリエンスの種類や質は異なってきます。私たちが WOA プロジェクトの開始当初から NVIDIA、Qualcomm、Texas Instruments の 3 社の ARM ライセンシーと協力してきたのはこのためです。この 3 社は専門分野もアプローチも互いに異なり、それぞれ独自の形で WOA に貢献しています。また、3 社いずれも、タブレット、スマートフォン、e リーダー、埋め込みデバイスなどの市場で、今日非常に大きな成功を収めている ARM ベースの製品を擁しています。このようなすばらしいパートナーのサポートがあるのは、私たちにとってたいへん幸運なことです。また、このような多様性を扱う WOA は独自の存在と言えます。

SoC パッケージ単体では、始まりに過ぎません。完全な形の WOA PC を提供するには、製造、システム エンジニアリング、工業デザインなどの専門知識を持つ PC メーカーと、ARM パートナーのエンジニアリング作業とを組み合わせる必要があります。多様なチャネルを通してコンシューマーや企業に PC を販売し、購入後の継続的なサポートを行うノウハウを持っているのも、PC メーカーです。

このパートナーシップにおける Microsoft の役割は、このような新しいハードウェア、新しいシナリオ、そして新しいエンジニアリング面の課題に合わせて調整された Windows オペレーティング システムを提供することです。私たちの目標は、刷新された Windows によって、チップセットからファームウェア、ハードウェア、OS、アプリケーションまで、そして最終的には PC を利用するユーザーまで、シームレスなエクスペリエンスを実現することにありました。これは新しいレベルの取り組みであり、参加するすべての企業に、新しいレベルのエンジニアリング作業を要求するものでもあります。この新しいアプローチは、PC のライフ サイクル全体にわたって、選択の幅、エクスペリエンス、そして信頼性の高いエンド ツー エンドのエクスペリエンスのユニークな組み合わせを提供することを趣旨とします。

アプリの提供

ARM ハードウェアに対応するために行われた Windows の実装の変更について詳しくお話しする前に、Microsoft が提供するアプリについてご紹介したいと思います (ここに来て "アプリ" という言葉が再び多用されるようになってきているのは嬉しいことです。1989 年に私が Microsoft で初めて持った名刺の肩書は、"アプリ部門、アプリ ツール担当ソフトウェア デザイン エンジニア" でした)。

新しい Windows 製品で提供されするエディションや SKU の種類についてはまだ何も発表されていませんが、プレリリース段階では、製品のすべての側面をテストおよび試用するため、ソフトウェアのほぼすべての機能が組み込まれます。最終的な WOA の提供形態では、市場で競争力を持ち、あらゆるユーザー層に対して魅力的な価値提案ができるように、含まれる機能が調整されることになります。

//build/ やその他のフォーラムで発表、実演したように、WOA には Windows Developer Preview に含まれていた WinRT の機能がすべて含まれます。x86/64 向けの新しい Metro スタイル アプリの開発に使用できるツールとテクニックはすべて、WOA をターゲットとする場合にも利用できます。WOA をターゲットとするアプリの開発には、C#、XAML、VB、および HTML5 ベースのツールを使用できるほか、Microsoft 提供のツールを使って、最大限のパフォーマンスと柔軟性を実現するネイティブ C/C++ コードを作成することも可能です (WinRT API セットをターゲットとするコードになっている必要があります)。また、C、C++、C#、Visual Basic、または JavaScript で記述された既存コードも、Windows サービス向けの WinRT API セットをターゲットとしているものであれば、アプリに自由に組み込むことができます。Windows Store では、アプリの ARM 向け実装と x86/64 向け実装の両方をホスト、配布、およびサービスすることができます (2 種類のディストリビューションを必要とするようなネイティブ コードがアプリに含まれる場合)。

また、以前にデモでご紹介したように、Microsoft の新しい Metro スタイル アプリでは、Hotmail、SkyDrive、Messenger といったクラウド ベースのサービスに接続できるほか、これらのサービスを通してさまざまなサード パーティにも接続が可能です。たとえば Microsoft のメール アプリは、企業およびコンシューマー ベースのメール、予定表、連絡先などを幅広くカバーする業界標準の EAS (英語) に接続することができます。既存の Live Connect 機能を使用すれば、Facebook の友人たちとチャットをしたり、LinkedIn や Twitter の最新のフィードを取得したりといったことを、すべて Metro スタイル アプリの中で行うことができます。これらはほんの数例に過ぎません。全世界で 100 種類以上のサービスを Microsoft アカウントに接続することができます。これらのアプリは WOA に同梱されますが、もちろん削除や既定の設定の変更も可能で、Windows Store でサード パーティから類似のアプリを入手することもできます。さらに、Windows Store の Metro スタイル アプリは、サインイン、コミュニケーション、アプリ内支払い、広告などのさまざまなサービスについて、連動するサービスを自由に選ぶことができ、Microsoft のサービスは使用してもしなくても問題ありません。

Windows 8 の次のプレリリース版では、標準 Web プラットフォーム HTML5 をサポートする Internet Explorer 10 と共に、業界標準のメディアおよびドキュメント フォーマットに幅広く対応する Metro スタイル アプリが Microsoft から提供されます。WOA における標準のサポートはこの分野で最高レベルに位置し、競合製品にも引けを取りません。そしてもちろん、システムに追加するアプリや実行するアプリをエンド ユーザーが自由に選択および管理できるようにすることについては、業界をリードして取り組んでいく考えです。

Windows デスクトップを利用できることも、WOA の重要な要素です。デスクトップは、PC を操作するための使い慣れた環境をユーザーに提供し、特にファイル、ストレージ、ネットワーク、および各種の周辺機器を扱う場合に役立ちます。たとえば、エクスプローラーを使用して、外部ストレージ デバイスに接続したり、ネットワーク共有にあるファイルの転送と管理を行ったりできます。複数のディスプレイを使用することもできます。しかも、こういった操作を行う際にキーボードやマウスを使用するかどうかもユーザー次第なのです。慣れ親しんだ操作感、速度と効率性、利便性、すべてが揃っています。ご希望であれば、行き届いたコントロール パネルからさまざまな設定項目にアクセスし、非常に細かいカスタマイズを行うことができます。また、タッチ対応の PC で Developer Preview を使用された方はよくご存知かと思いますが、デスクトップのユーザー インターフェイスはタッチ操作向けにリファインされており、アフォーダンス提示方法も改良されています。

同時に WOA では (Windows 8 と同様に)、Metro スタイル アプリに集中したいユーザーはデスクトップにまったく触れなくてもいいようになっています。デスクトップが用意されていることによって実行時間のオーバーヘッドが生じることはなく、使いたいときや必要なときにはすぐに使用できます。デスクトップが存在しても WOA PC のシステムのセキュリティ、継続的な信頼性、パフォーマンス、電力消費量に悪影響が生じないようにしている背景的な技術については、以下で詳しくご説明していきます。まもなくリリースされる Consumer Preview ではユーザー エクスペリエンスにさまざまな改良が施されており、Developer Preview をお試しになった方なら、その後も進化が続いていることを実感していただけることと思います。

さまざまな理由から (純粋さを追求するため、過去と決別するため、よりシンプルな、あるいはより急進的なアプローチを求めて、など)、WOA ではデスクトップを割愛してはどうかというご意見もいただきました。しかし私たちにとって、ユーザーにほとんど負担をかけることなく提供できる有用な要素を割愛することは、PC の進化の形として望ましいとは思えない "妥協" でした。複数のモデルの共存は、あらゆるプラットフォームに含まれる要素です。次世代のプログラミング モデルへの移行のサポート (たとえば有効な場合は仮想化やエミュレーションによるソリューションを提供)、1 つのプラットフォームで複数のプログラミング モデルをサポートすること (ネイティブ アプリケーションと Web ベースのアプリケーションがどちらも人気であれば両方に対応)、複数の作業方法のサポート (シナリオに応じて利用できるコマンド シェルと GUI を提供) など、プラットフォームが何であれ、複数のモデルを提供することは、真に妥協のないエクスペリエンスを提供する柔軟なソリューションにつながります。

Windows デスクトップの一部として、WOA には、コードネーム "Office 15" と呼ばれる新しい Microsoft Word、Excel、PowerPoint、および OneNote のデスクトップ版が同梱されます。Office 生産性ソフトウェアの使い慣れたエクスペリエンスと互換性、ハードウェア アクセラレーションに対応する業界最先端の Web ブラウザー、Microsoft 製のアプリ、Windows Store のアプリへのアクセス。これらすべてを求めるユーザーにとって、WOA は妥協のない製品となります。

このようにアプリ、メディア利用、エンターテインメント、モバイル性、生産性をすべて備える WOA PC は、まさに妥協のないエクスペリエンスと言えるでしょう。WOA 用の新しい Office アプリケーションは、タッチ操作や電力/リソース消費量の削減を強く意識して設計されています。このエンジニアリング作業は、WOA での Office ソフトウェアの提供を可能にするうえで非常に重要な取り組みでした。WOA 向けの Office は単なる再コンパイル版や移植版ではなく、一貫性のある完全なユーザー エクスペリエンスと、x86/64 版の新しい Office との整合性を備える、根本的に再構築された Office 製品なのです。

コードネーム "Office 15" と呼ばれる次期バージョンの Microsoft Office について詳しくは、Office Exec ブログ (英語) でご覧いただけます。

ARM 向けのエンジニアリング

ARM アーキテクチャ上で Windows が優れたパフォーマンスを発揮できるようにすることは、エンジニアリング タスクとして非常に大きなものです。私たちがこの仕事に取り組むことにした背景には、将来への展望があります。Windows がその歴史を通じて獲得してきた機能の多くは、今日の ARM ベースの製品がサポートする種類のデバイスに対して、今後ユーザーが求めるようになるに違いないものです。"ゼロからやり直す" ことを掲げるのは一見魅力的な選択肢ですが、私たちは、技術的な基礎が安定していてこそテクノロジ資産の進化は起きると考えています。Windows の基礎、つまりコアは、現在出回っている中でも最も強固でスケーラブル、かつセキュリティに優れたものの 1 つと言えるでしょう。妥協のないエクスペリエンスの実現を目指す情熱が、私たちの取り組みを後押ししています。

同時に私たちは、Windows には、継続的な信頼性、電力消費、リソース使用量などの面、そしてネットワークへの接続やデバイス自体の使用を瞬時に行うという面で、ユーザーの期待値を満たすために再開発が必要な要素があることも認識しています。こういった取り組みはすべて x86/64 製品の Windows 8 にも関連し、ARM 向け Windows で行われた改良の多くは、(この記事では扱いませんが) Intel や AMD から今後登場してくる魅力的な新製品にも適用できることになります。ARM への取り組みは、OS の挙動やプログラミング モデルにおいて固定観念となっている点を見直し、抜本的な改良を行うための良い機会となります。

新しい WOA PC の特徴の 1 つは、電源をオフにしないということです。WOA PC には、私たちが慣れ親しんでいる休止状態やスリープのオプションはありません。代わりに、Connected Standby (接続維持スタンバイ) という新たに設計された電力モードにより、今日のスマートフォンと似たような形で常にオンにしておくことができます。画面がオンになっているときは、WOA PC の電力や性能をフルに利用することができます。電源ボタンまたはタイマー動作によって画面が暗くなると、PC はきわめて電力消費の少ない状態に移行します。新しく提供されるこの低電力状態では、何週間というスパンでのバッテリ動作が可能です。電力が節約されるのはこの状態のときだけではありません。消費電力は常に動的に調整され、システム内に使用されていない部分が見つかれば、可能な限り電力の供給が抑制されます。エンド ユーザーにとって WOA 独自のメリットと言えるのは、バックグラウンドでの処理 (たとえば新着メール取得のための常時接続など) を許可するアプリを、ユーザー自身が指定できるという点です。Connected Standby (接続維持スタンバイ) は、WOA PC で行われたエンジニアリングを、ハードウェア、ファームウェア、OS、WinRT プラットフォーム、アプリのすべてにわたって活用するものです。Connected Standby (接続維持スタンバイ) は、ARM アーキテクチャに限って提供されるものではありません。x86/64 の SoC 製品でもこの機能を実現するべく、積極的に作業を進めています。

今日私たちが慣れ親しんでいる PC エクスペリエンスでは、x86/64 ベースの Windows を実行できるハードウェアは単一の技術仕様に準拠しており、1 種類の Windows ディストリビューションで、さまざまな PC でのインストールや実行に幅広く対応できるようになっています。このことはスケーラビリティの面で非常に大きなメリットをもたらしています。また、このオープンな枠組みは、PC 革命を象徴するものであり、1980 年頃から始まった業界全体としての取り組みの成果でもあります。幅広くサポートする必要のある新しいハードウェアが登場すれば、これらの基本的な技術仕様もそれに合わせて更新され、PC のアーキテクチャも進化します。このアプローチは、Windows 8 においてもまったく変わりません。既に Windows 8 Developer Preview で何百万人ものユーザーに体験していただいたとおり、Windows 8 は Windows 7 ロゴを取得しているすべての PC で実行が可能であり、既存のソフトウェアや周辺機器も、Windows 7 向けに設計されたものや Windows 7 でサポートされていたものであれば、すべて Windows 8 で動作します (これはもちろん製造元が Windows 8 での使用をサポートしている場合に限ります)。

ARM 製品のライセンサーである ARM Holdings が採用しているアプローチは、このような標準化とは明確に異なっています。メーカー各社のデバイスはそれぞれ独自のものであり、そのデバイスで実行されるソフトウェアも独自のものです。命令セットと CPU のアーキテクチャについてはもちろん標準が定められており、常時改良が続いています (64 ビット対応やマルチコアの追加など)。しかし、CPU と他のコンポーネントとの連動については、多くがそれ自体ライセンシーによるイノベーションであり、ARM プラットフォームに寄与するものとなっています。デバイス間の共通性は、内部的には存在することもありますが、ユーザーが利用ないし認識できるものではありません。デバイスに別の OS (または OS の別のバージョン) をインストールすることや OS を拡張することは技術的に難しいため、通常はエンド ユーザーにとっては不可能であり、デバイスの製造元がサポートすることもあまりありません。デバイス メーカーは ARM パートナーと協力して、特定のソフトウェア セットとの組み合わせを厳密に規定されたデバイスを製作します。ユーザーは完全なパッケージとしてこれを購入し、その後のサービスやアップデートは単一のパイプラインを通して行われます。これらの埋め込みデバイスにおいては、パートナー間で横断的に統合されたエンジニアリングが大きな比重を持ちます。これらの意味で、WOA は x86/64 の Windows とはかなり異なります。

WOA では、コンピューティング プラットフォーム開発の新しい方法を確立することを目指しました。私たちのアプローチは、すべてのソフトウェアや周辺機器が、ARM アーキテクチャによって実現される多様性、幅広いフォーム ファクターやメーカーの選択肢、プラットフォームのオープン性といった恩恵を受けられるように設計されています。同時に私たちは、性能、エクスペリエンス、基本的なパフォーマンスなどにおいて、WOA の多様なデバイスに一貫性を持たせることを、ユーザーに対して約束します。Windows Phone 7 のアプローチである "シャーシ仕様" についてご存知の方もいらっしゃるかと思いますが、WOA でも一部同様の方法を採用しています。WOA で採用される仕様は、さまざまな面で Windows Phone よりも多様性を重視したものとなっていますが、エンジニアリングや製品の品質に向けたコミットメントは共通しています。また、このような多様性を確保しつつも、すべての WOA PC で同一の OS バイナリを実行していることは、前述のとおりです。

ARM 向けのエンジニアリングにおいて私たちが行った最初の取り組みは、Windows カーネルを ARM 上で実行できるように設計することでした。これがかなりの労力を要する作業であったことはご想像いただけるかと思います。この作業を、新しい命令セットに向けたコードの移植または再コンパイルの範疇と考える方もいらっしゃるかもしれませんが、Windows の中でもハードウェアに直結する部分やカーネルとなると、必要な作業はそういった範囲にはとどまりません。カーネル関連の作業のほかにも、Windows を構築するために ARM 向けのコンパイラやツール (Visual Studio を含む) も開発する必要がありました。

より高いレベル、つまりアプリケーション レイヤーになると、コードの移植性はかなり高くなります。これは、長年複数のアーキテクチャ (x86、x64、PowerPC、Alpha、MIPS、IA64 など) での実行に対応してきた経緯があるためです。カーネルそのものでさえ、移植可能なコードはかなりの量にのぼりました。ハードウェアとソフトウェアのつなぎ目に当たる部分や、OS とハードウェアの連動についてのさまざまな前提に基づいた設計となっている部分については、Windows は新しいプラットフォームに合わせて完全に刷新されています。ここで少し頭字語の話を交えますが、ARM では定義上、PCI バスや SATA といった一般的なサブシステムのサポートが必須とされていません。各 ARM 実装で類似の概念が採用されていることはありますが、これらは必ずしも共通する内容となってはいません。これらの作業は、プロジェクトの開始以来 3 回にわたって発生した ARM ハードウェアの大規模な改訂に対応しながら行われました。

それでは、この取り組みの一環として行われた作業のうちのいくつかについて見ていきましょう。実際にはその範疇にとどまらない作業が多く含まれるのですが、社内ではこの取り組みを "移植" と呼んでいました。なお、これらの作業がすべて、ユーザー エクスペリエンス、Windows Store、WinRT、その他 Windows 8 のさまざまな新機能の開発と並行して行われたということにもご注目ください。

移植の準備作業

移植作業に入る前に、まず Windows の構築に使用する ARM コンパイラとツール チェーンが必要でした。ARM プロセッサは Microsoft の他の製品 (Windows Phone や Windows Embedded など) でも使用されるため、パーツは揃っていましたが、Windows の構築用にさらに改良を施しました。これらのツールは開発者に提供される予定で、Windows 8 Developer Preview で C#/VB/XAML/HTML5 を扱っている方なら、既に使用されていることになります。C/C++ ではテスティングに ARM ネイティブのハードウェアが必要です。これについては下で詳しくお話ししたいと思います。

Windows コアの起動

ツールが揃うと、Windows 起動環境の移植と、システムのファームウェア仕様の開発に着手することができました。実は、ファームウェアのプロトタイプ作成まで、私たちが自分たちの手で行っています。ファームウェアには次のようなものがあります。

  • UEFI ファームウェア: WOA システムの最も低いレベルのレイヤーで、OS を読み込むための一貫性のあるサービスを提供します。WOA においては、パートナーに配布したシステムのブートストラップ処理を行うためのファームウェアを作成しました。また、WOA システムには、Trusted Boot とストレージ暗号化のため、ファームウェア ベースの TPM が搭載されています。TPM はたとえば、マルウェアによってシステムが改ざんされていないか検証する Trusted Boot の実装に使用されています。
  • ACPI ファームウェア: 起動時にプラットフォーム内のデバイスのプラグ アンド プレイ列挙に使用されるほか、SoC 外のデバイス (センサー、タッチ コントローラーなど) の電源管理を担当します。PC ではプラグ アンド プレイ バスと ACPI について長年にわたって標準化が行われてきたため、オペレーティング システム ソフトウェアやドライバーは、単純に "ツリーをたどる" ことで PC 内のものをすべて確認できるようになっていました。SoC の埋め込み型の設計では、"ツリー" に当たるものはなく、SoC に接続されているものを検出する機能も、SoC がどのように接続されているかを検出する機能も用意されていません。Windows 8 では、テーブルを使ってシステムの構成を説明するための標準を新たに定義しました。これによってソフトウェアは、単純にテーブルを読むことで、システムを構成することができます。

ファームウェアの次は、システムはブート マネージャーとブート ローダーを読み込み、続いてカーネル、HAL、ブート デバイス ドライバーを読み込みます。

  • Windows ハードウェア アブストラクション レイヤー (HAL) は、コア システム リソース (タイマー、DMA、割り込みコントローラー) のばらつきに対応します。Windows は当初から複数の命令セット アーキテクチャ (ISA) に対応できるように設計されています。新しい ISA にしばしば付随する、異なるシステム アーキテクチャに適応する際に重要となるのが HAL です。ハードウェア レイヤーを抽象化することによって、OS 自体を変更することなく新しい SoC をコア システム リソースに適応させることができます。ARM プラットフォーム間のばらつきはかなり大きいため、新しいレベルの抽象化機能をサポートする HAL を開発することにしました。Windows 8 の HAL では、ちょうど割り込みコントローラー用のドライバーのように、各コア システム リソースを HAL の拡張機能経由でプラグ インさせる機能が新たに用意されています。
デバイスおよびバス

デバイス ドライバーを読み込んで Windows の起動を続けるには、新しい種類の低電力バスのための新しいドライバーと、それらのバスへの接続をサポートするデバイス ドライバーを作成する必要がありました。

私たちのデバイス戦略では、標準化されたプロトコルとクラス ドライバーを多用します。以下に示す 1 つ目の例は、タッチ コントローラーや多くのセンサーで使用する I2C 接続 HID ドライバー、2 つ目は USB 接続によるモバイル ブロードバンド用無線機器で使用するクラス ドライバーです。もちろん、さまざまな USB デバイス (ストレージ、マウス、キーボードなど) を接続していただければわかるように、Windows には多数のクラス ドライバーが内蔵されています。

  • I2C/UART のような低電力シリアル バスは、ARM PC では一般的ですが、x86 PC ではあまり使用されません。これらのバスは、一般にデータ転送速度では劣るものの、消費電力は非常に低く、場合によっては 10 分の 1 以下になります。WOA の全体的な電力消費量を削減し、バッテリ寿命を延ばすには、これらのバスをサポートすることが重要です。これらのバスをまとめて Simple Peripheral Bus (SPB) と呼び、WOA では SPB 用に新しいインターフェイスを開発しています。インターフェイスを用意すると、次はあるギャップを埋める必要がありました。Windows には、クラス ドライバーを介して USB 接続をサポートされる多くのデバイス クラスがあります。これらのクラスは I2C 接続では定義されていないため、クラス ドライバーによるサポートができません。よく使用されるデバイス クラスとして、Human Interaction Device (HID) プロトコル ベース デバイスがあります。HID は、キーボード、マウス、タッチパッド、スピーカーフォン、ボタン、タッチスクリーンなどのデバイスでは、最もよく使用されるプロトコルです。I2C 接続 HID 向けに標準化されたプロトコルを定義し、ドライバー サポートを実装することで、I2C ベースのデバイスが単一のクラス ドライバーで動作するよう、デバイスを製造するパートナー企業と協力してファームウェアを調整することができます。たとえば、I2C 接続 HID をサポートすることで、タッチ コントローラーがそのインターフェイスを使用し、Windows の既存の入力サポートを活用することが可能になります。
  • SD I/O は、低電力 Wi-Fi 無線機器への接続に使用します。現行の PC では、無線機器は USB または PCI-E によって接続されています。SD I/O サポートを追加することによって、高速なデータ転送 (100 MB/秒) を維持しつつも、バッテリ寿命を延ばすことができます。また、WOA の Wi-Fi- サポートでは、効率的なオフロード処理によって、Connected Standby (接続維持スタンバイ) 時に消費電力を非常に低いレベルに抑えながら接続を維持することができます。
  • Embedded MultiMediaCard ストレージ (eMMC) は、通常 SATA をサポートしない ARM デバイスにおける、ストレージのデファクト スタンダードです。Windows では従来、非常に高速なディスクと高帯域幅のデータ転送が一般的だったため、これは興味深い課題となりました。eMMC をサポートするだけでなく、OS のパフォーマンス面でいくつか最適化を行ってストレージ I/O の削減と集約を図り、ストレージ読み書きの頻度を下げることに成功しました。
  • General Purpose I/O (GPIO) ドライバーは、ARM プロセッサへのボタン、割り込み、その他の I/O の接続をサポートします。
  • GPIO ドライバーのほかに、Windows ボタン、電源ボタン、および音量ボタン用のボタン ドライバーがあります。ARM デバイスではボタンは標準となっていません。システムごとに、すべてのハードウェア ボタンに対してドライバーが必要です。
  • SoC 全体の電力、プラットフォームの総電力、および Connected Standby (接続維持スタンバイ) によるオン/オフ使用モデルを管理するための、新しい電源管理フレームワークを構築しました。
[Start] (スタート) 画面への到達

ファームウェア、HAL、ブート サービス、ブート デバイス、バスが正常に動作したら、次は残りのシステム全体を起動し、デスクトップと [Start] (スタート) 画面を表示する必要がありました。

  • WOA 用の ARM SoC には、Internet Explorer 10、Windows のユーザー インターフェイス、および Metro スタイル アプリでグラフィック アクセラレーションを実現する、DirectX 対応 GPU (DX) が搭載されています。応答性の高いユーザー エクスペリエンスを提供するためには、DX 対応 GPU の活用は欠かせません。各 WOA ターゲットについて、ARM パートナーによって DX 互換のグラフィック ドライバーが作成されています。今日の GPU は CPU 以上に複雑なため、これは非常に複雑なコードを扱う作業です。まだグラフィック ドライバーが作成されていない新しい SoC で Windows 8 を動作させるため (ARM SoC は互換モードでのフォールバック先として業界標準となっている VGA サブシステムを持たないので)、グラフィック チームがハードウェア フレーム バッファーを直接扱うことのできるソフトウェア GPU ドライバーを作成しました。これによって開発を続行することができましたが、それだけでなく、通常の GPU ドライバーが利用できないときにソフトウェア GPU ドライバーを使用するように、Windows の他の部分を刷新するためにも役立ちました。たとえば Windows セットアップの実行時や、まれではありますが "ブルースクリーン" が表示された場合に、よりユーザー フレンドリな表示を行い、ローカライズすることまで可能になったため、プラットフォームを問わず、たとえ悪いニュースでもいくらか親しみやすい形で表示できるようになりました。これは、小規模ながら、x86/64 アーキテクチャにも適用できる成果の一例です。
  • WOA PC では、ハードウェア サポートを利用して、特定の処理をメイン プロセッサから統合されたハードウェア サブシステムへとオフロードします。このことはパフォーマンスとバッテリ寿命の向上に役立ちます。たとえば、映画を観ている間は、マルチメディア オフロードによる処理 (たとえば専用のプロセッサへのオフロード) が行われ、その他の処理は最小限に抑えられます。マルチメディア オフロードはメディア再生用に最適化されているため、バッテリを使い切ることなく何本も映画を観ることができ、また、PC のデザインの面でもさらに薄型軽量化を図ることができます。別の例として、たとえばドキュメントで作業をしながら映画を観ている場合、映画再生の処理はオフロード ハードウェアによって行われるため、システムの全体的な応答性が向上します。WOA では、マルチメディアのエンコード/デコード、BitLocker および EAS 用のセキュリティ オフロードなど、何種類かのオフロードを活用できます。この種類のエンジニアリングは、同じくオフロード処理をサポートする x86/64 にも適用可能で、Windows 7 から導入されています。
接続デバイス サービス

これでシステムの大部分が正常に動作している状態になったので、次は Windows を完全にサポートするためにサービスを導入しました。サービスは Windows がサポートするすべてのアーキテクチャで共通なので、Metro スタイル アプリから利用することができます。

  • モバイル ブロードバンド (MBB) クラス ドライバー。クラス ドライバーを作成したため、すべての Windows PC でブロードバンド機能を簡単に追加できるようになりました。きっかけとなったのは WOA ですが、エコシステム全体にとって有益な成果が得られました。
  • プリンター クラス ドライバー。Windows 8 では、印刷のインフラストラクチャーを再構築し、クラス ドライバーのサポートを追加しました。今日流通しているプリンターの大部分はクラス ドライバーによってサポートされているため、WOA でもドライバーを追加することなくそのまま "プラグ アンド プリント" することができます。この新しいアーキテクチャはさまざまな理由から必要とされていたものですが、WOA PC から印刷を行うことも、当初から計画していた機能の 1 つでした。
  • GPS。Windows には、Wi-Fi アクセス ポイントとバッキング データベースを使った三角測量によって PC の位置を割り出す、位置情報取得機能が用意されています。さらに、モバイル ブロードバンド搭載のシステムには、全地球航法衛星システム (GNSS、米国では GPS) 受信機も組み込まれており、屋外でのナビゲーションでも正確な位置情報が提供されます。位置情報プラットフォームは消費電力の削減や精度の向上において非常に重要な役割を果たすもので、アプリケーションが要求する精度に応じて適切な位置情報データ プロバイダーを選択します。
  • センサー (加速度、回転、ジャイロ、コンパス、磁気)。このブログの最近の記事では、センサー フュージョンと、Windows でのセンサーのサポートについてご説明しました。これは SoC ベース アーキテクチャにも当てはまり、これらのデバイスでは I2C 接続 HID プロトコルが使用されます。
  • Bluetooth。WOA は Bluetooth LE をサポートします。x86/64 の Windows 8 と同じプロファイルに対応し、低電力の UART を使用して Bluetooth 無線機器に接続します。
  • USB/IP 接続 MTP。Windows on ARM では、メディア転送プロトコル (MTP) を使用してポータブル デバイス (携帯電話、音楽プレーヤー、カメラなど) をシステムに接続することができます。MTP 準拠デバイスでは Windows 内蔵のクラス ドライバーを使って USB または IP で接続ができ、好みの Metro スタイル アプリとデータをやりとりするこができます。
  • Windows Update ベースのサービス。プラットフォームのすべてのコード (OS、ドライバー、システムおよびデバイスのファームウェア) について、サービスはすべて Windows Update (WU) を通して行われます。安全かつ信頼性の高い方法で WOA システム上のファームウェアを更新できるよう、WU にサポートが追加されています。また、ドライバーのターゲット設定もサポートされ、検証済みの最適なドライバーが各デバイスに提供されます。

ご覧のとおり、ここで紹介したエンジニアリング作業の一部は、新しいハードウェア プラットフォームへの対応に焦点を絞ったものです。まったく新しいタイプのハードウェア サポートを導入するものもあります。これらの取り組みの多くは、x86/64 プラットフォームにも寄与するものです。特に、CES で Intel が披露した低電力の新しい ATOM® プロセッサなど、最先端の製品は恩恵を十分に受けることになります。

また、かなりの部分はアプリケーション レイヤーにも関連し、//build/ で紹介された新しい WinRT API を特徴づける要素となっています。たとえば、Connected Standby (接続維持スタンバイ) をサポートするためにカーネルでエンジニアリング作業を行いましたが、バッテリ寿命の向上は、WinRT のアプリケーション モデルとツールセット全体に寄与するものです。そしてこれらすべてが、WOA と x86/64 の Windows 8 の両方に適用されることになります。

既に述べたように、Windows を構成する要素の一部は、比較的簡単に ARM でも動作させることができるコードで書かれています。このようなサブシステムとして、Windows デスクトップ、アプレット、サポート API などがあります (ただし実際には、リソースや電力の使用効率を向上させるため、いずれも大幅に再設計する必要がありました)。実際、こちらの古い写真では、ARM デバイス (初期の Windows Phone) で Windows デスクトップが完全に動作しているようすをご確認いただけます。WOA 開発の初期の頃には、使用できるハードウェアは既存の ARM デバイスのみ、それも ARM タブレットはまだ存在しなかったため、携帯電話などしかありませんでした。ここに掲載する写真はあくまで参考用としてお楽しみいただくためのもので、かなり古いものです。デバッグ用の WOA がすべて RAM に読み込まれています (レタッチはしていません)。注: これは製品のプランではなく、実際の製品を示唆するものでもありません

 手に持ったモバイル デバイスの画面に、タスク マネージャーとスクリーン キーボードが表示されている

手に持ったモバイル デバイスの画面で、電話のテンキー表示の上にソリティアのウィンドウがオーバーレイ表示されている

テスティング

ラボでの WOA のテスティングはどのように行っているのか、疑問に思われる方もいらっしゃることでしょう。x86/64 では、デイリー ビルドひとつひとつに対して、巨大なラボ (物理マシンと仮想マシンを合わせて何千台という規模) を使って高度に自動化されたテストが実施されます。WOA では、ラボやテスト プロセスも根本的に刷新する必要がありました。x86/64 のテスティングなら、何千台ものラック マウント型のサーバーを注文するのも簡単ですし、仮想化することもできます。しかし ARM の場合、WOA を実行できる標準的なラック マウント型のサーバーは存在しません。ハードウェア、ファームウェア、ソフトウェアの緊密な統合を伴う開発作業であり、仮想化が役に立たない以上、新しいアプローチを工夫するしかありません。

そこで、何百台もの ARM 開発用ボードとカスタム製作した I/O ボードをラック アセンブリに集約し、テスティング用のインフラストラクチャに接続しました。当初の設計は密度を重視して 1 つのラックに 300 台の ARM デバイスを格納するというものでしたが、最終的には、診断性に優れ、カスタム製作した I/O ボードを組み込むことができる、1U のセットアップに落ち着きました。

標準的なサーバー ラックに収まる 1U のシャーシは、私たちが独自に設計したものです。シャーシには、フルサイズのフォーム ファクターを持つデバイスを格納することも、マザーボード単体を格納することもできます。SoC ボードと I/O ボード、シャーシを組み立てると、外見も動作も標準のラック マウント PC とまったく変わらず、ラボのインフラストラクチャにぴったり収まるものができあがりました。

各 42U サイズのラックには、32 台の WOA シャーシとネットワーク スイッチ、デバッグ用のホスト PC、USB ハブが格納されています。3 月までには、マシンを満載したこのような "ラック" が 100 台以上揃い、WOA のテスティングに使用される予定です。

また、テスト ツールのインフラストラクチャやテスト自体も移植する必要がありました。これは決して簡単なことではありませんでしたが、Windows 8 と同様にオートメーションの進んだリッチな環境で WOA のテストを行うためには必要なことでした。次の写真は、私たちが新しく工夫したテスト用ラックと、格納されているボードとデバッグ用ポートを示したものです。

テスト用ラック

ボードおよびデバッグ用ポート。各部のラベル: カスタムの I/O ボード、HDMI/VGA コンバーター、カスタムの HDMI モレックス電源インサーター、USB デバッグ (I/O ボードへパススルー)、USB-A アップリンク (I/O ボード上のハブへ)、標準的な 1U ラック マウント シャーシ (ATX または EATX)、標準的な PC 用電源装置、フロント パネル USB ヘッダー、フロント パネル電源スイッチ、リセット スイッチおよび LED ヘッダー、標準 20 ピン ATX 電源コネクタ、カスタム ボードからモレックス電源ケーブルへ (SV)、標準 SATA ハード ドライブ (空きドライブ)、HDMI 電源インサーターへの HDMI ケーブル、粘着性スタンドオフに固定された SoC ボード

ARM 向けの開発

これらを実際に行うことは、見た目よりもさらに踏み込んだ作業となります。この機会を捉えて、Windows のあらゆるサブシステムについて非常に徹底した再設計を行いました。WOA と Windows 8 を開発する過程では、全体的な電力消費量やリソース使用量を最低限に抑えつつ、同時に既存のアプリケーション ワークロードでの実際的なパフォーマンスを向上させることができるように Windows のすべてを変えるべく、非常に多くの労力が注ぎ込まれています。これまでの記事で披露してきた、起動エクスペリエンス、電源管理、メモリ使用量などの改良点は、この取り組みによる成果の一部です。

既にご説明したように、WOA では仮想化やエミュレーションなどのアプローチはサポートせず、既存の x86/64 アプリケーションの移植や実行には対応しません。さまざまな形態のエミューションによる実行をサポートすることは、現代的なアプローチでシステムの信頼性や予測可能性向上を目指す製品の方針とは相容れないものです。既存のコードは、当然ながら、WOA のようなプラットフォームに対する最適化を施されていません。仮想化やソフトウェアのエミュレーションによる、バッテリ寿命や CPU 使用率といったシステム リソースの消費量も、許容できるレベルではありません。また、既存の x86/64 ソフトウェアのエミュレーションや仮想化では、マウスとキーボードを備えた従来的な PC 環境が不可欠となりますが、WOA PC ではこの前提条件は決して盤石ではないでしょう。

既存コードの幅広い移植を可能にした場合、バッテリ寿命の向上、予測可能なパフォーマンス、そして特に継続的な信頼性を備えるエクスペリエンスに向けて行ってきた取り組みを、成果として提供することは望めなくなります。今日の Windows アプリで使用されている枠組みの中では、こういったメリットは必ずしも実現できません。バックグラウンド プロセス、ポーリング ループ、タイマー、システム フック、スタートアップ プログラム、レジストリ変更、カーネル モードのコード、管理者権限、署名されていないドライバー、アドインなど、その他さまざまな一般的なテクニックがこれに当てはまります。こういった構造を回避することで、WOA は新しいレベルの顧客満足を達成することができます。WOA PC では、アプリはシステムや他のアプリから隔離されており、時間が経ってもパフォーマンスが低下することはありません。実行されている追加ソフトウェアについてはユーザーが常に把握できます。そしてその間も常に、多様なハードウェアの性能は妨げられることなく発揮され続けるのです。

WOA を利用するユーザーに対して従来を超えるレベルのセキュリティを提供することは、最も優先的な目標の 1 つに設定されています。ある公開イベントで、既存のウイルスやマルウェアの活動を容易に許すような環境になるかどうかという質問を受けました。ここまでお読みいただいた方にはもちろん明らかだと思いますが、答えは断じてノーです。実際 WOA では、Windows Update を通して配布されたコードか Windows Store のアプリでない限り、コードの実行自体がサポートされません。私たちが皆理解しているとおり、セキュリティは業界全体にかかわる多次元的な課題であり、どのようなシステムないしプラットフォームであっても、何かを断言するためにはよほどさまざまな要素を考慮する必要があります。

既存の x86/64 ソフトウェアを実行する必要がある場合は、x86/64 の Windows 8 をおすすめします。既に Windows 以外のデバイスを検討されている場合、フォーム ファクターの幅広いポテンシャル、周辺機器、Windows Store のアプリ (および開発者向けプラットフォーム)、Office アプリケーション、Windows に付属する多様な機能などを考慮すれば、WOA はさらに優れた選択肢となるものと思います。

もちろん、既存のプログラミング技法に頼る開発者が、Microsoft 内外共に多数いるのは事実でしょう。WOA への移行は投資を伴うものです。WinRT ベースでアプリ開発を行えば、これを含む多くの課題に、最初から一気に対処することができます。WinRT は、全体的なユーザー エクスペリエンスの品質低下につながる罠や落とし穴を回避して、現代的なソフトウェアに求められる強い表現力をフルに発揮できる設計となっており、その基盤にはツール、言語、そして開発者サポートに対する深いコミットメントがあります。

既存のアプリを WOA ユーザーに向けて提供したい場合、選択肢は 2 つあります。多くのアプリにとって最適と考えられるのは、既存のデータ ソースやアプリケーションのために Metro スタイルのフロントエンドを新たに開発し、Web サービス API を通じてコミュニケーションを行う方法です。このアプローチは、基幹業務アプリケーションやコンシューマー Web 資産の多くで広く採用される見込みで、他の新しいアプリとやり取りをしたり情報を共有したりすることができる、リッチなユーザー操作モデルを取り入れるための最善の方法でもあります。もちろん、フロントエンドにとどまる必要はありません。WOA ではファイルや周辺機器にフルにアクセスできるため、ローカル データを扱うことも可能です。別の方法としては、エンジンやランタイム コードの多くを再利用しつつ、Metro スタイルのエクスペリエンスでラップすることによって、既存アプリケーションを活用することができます。これにはそれなりの時間がかかりますが、大量の知的財産を使って作成されたアプリケーションを WOA と WinRT に移行させたい場合は有効でしょう。いずれの場合も、WinRT を使って開発を行うことで、Windows の新しい OS サービスを利用でき、"Designed for Windows 8"、つまり Windows 8 用に設計されたソフトウェアを製作することができます。

ここで //build/ でお見せしたアーキテクチャの模式図に戻りたいと思います。サードパーティの開発者の視点から見た場合、WOA は Metro スタイル プラットフォームの表現であり、Windows Core OS を他の Windows 製品と共有していると考えるのが最もわかりやすいでしょう。Windows Core OS は ARM プラットフォームをサポートするように調整および再設計され、WinRT API やサードパーティが使用するプログラミング モデルをサポートします。

//build/ で披露された WinRT アーキテクチャのブロック図

ARM 向けのエンジニアリングは幅広いトピックであり、プロジェクトの過程で Windows チームの多くのメンバーによる取り組みを要しました。次のステップは WOA コードを広く提供することです。まず、WOA PC をどのように市場に出していくかという点についてお話ししたいと思います。

WOA PC の提供

Windows 7 プロジェクトの終結以来、私たちは PC メーカーと協力して Windows の進化と Windows 8 の開発を進めてきました。新しい PC を市場に送り出す舞台裏では、膨大な量の共同作業が行われています。PC に付いている "Designed for Windows" というロゴは、新しい優れた PC を市場に出すためにさまざまなパートナーが共同して行った取り組みの象徴なのです。業界として x86/64 PC を市場に出すうえで使用するモデルは従来も今後も同様です。USB 3.0、UEFI、タッチ操作、センサーなどの新技術を紹介し、新しい Windows のリリースと新しいハードウェアによってこれらをサポートします。業界全体のコラボレーションとして現在も進行しているこの取り組みによって、今回のリリースでもさまざまな優れた改良点が提供されます。

WOA PC の提供は、新しいシステムを初めて作り上げる取り組みです。まったく新しい PC のエコシステムによって、新たな可能性を持つ新世代の PC を生み出す機会が PC メーカーに提供されます。私たちはこれらの PC を、3 つの軸において新しいレベルの性能を実現するものと定義しています。薄く軽量の工業デザイン、長いバッテリ寿命、そして統合された品質です。

SoC、周辺機器、ファームウェア、そして OS の間で必要となる緊密なつながりによって、WOA PC は単なるパートナー企業のコラボレーションという域を大きく超えた、共同開発の産物と捉えるべきものとなっています。Windows チームのソフトウェア開発スタッフが気付けばはんだごてを片手にシリコンのデバッグを行っており、ハードウェア エンジニアがいつのまにか Visual Studio を使って UI コードのタイミングの問題をデバッグしているような、横断的な取り組みです。WOA PC のひとつひとつが、コンポーネントの選定から始まり、ファームウェア、ドライバー、最終的なアセンブリを経て、PC メーカーのユニークなアプリを組み込まれることで完成する、新しいエンジニア努力の産物なのです。また、ARM の設計にはシミュレーションやエミュレーションのプラットフォームが使用され、実際のシリコンが提供される前から、最適な形を求めて試行錯誤が行われます。さらに、優れた SoC だけでなく、効率的な無線機器、センサー、さらには DC 電源のインフラストラクチャに至るまで、エコシステム全体の力を結集して、低電力消費を実現する総合的なプラットフォーム設計を図っています。これらすべての重要な努力によって実現されるのが、薄く軽量でバッテリ寿命の非常に長い PC であり、高品質なエンジニアリングによって優れたエクスペリエンスを提供する、真に "Designed for Windows 8" と言えるアプリとサービスなのです。

WOA PC はひとつひとつ独自のものとなりますが、Windows の役割は、一貫性のあるエクスペリエンスをユーザーに提供しながら、ユニークでイノベーションに富んだハードウェアの魅力を妨げることなく発揮させることです。これはまさに OS のあるべき姿と言えるでしょう。これを実現するため、私たちは前述のとおり複数の ARM ライセンシーと協力してきました。Texas Instruments、Qualcomm、そして NVIDIA です。3 社いずれも、WOA PC を市場に送り出すパートナーと協力して作業を進めています。これらの PC はすべて、WOA 専用に設計され、製造されたものです。チップセットからファームウェア、ドライバーに至るまで、WOA にとって最も効果的なように最適化されています。パートナー各社は、タブレットだけにとどまらないさまざまなフォーム ファクターについて、クリエイティブな工業デザインを生み出すべく、現在も開発を続けています。私たちの共通の目標は、x86/64 の Windows 8 向けに設計された新しい PC と同時期に、PC メーカーから WOA PC を出荷することです。そのときには、低電力かつ高パフォーマンスを実現する最新世代のプラットフォームが採用されるでしょう。

この記事の本題からは外れますが、ユーザーが WOA PC を購入する場合には、x86/64 の Windows 8 との混乱を避けるため、ラベルとブランドが明確に表示される予定ですのでご安心ください。PC は、OS がプリインストールされ、ドライバーやサポート ソフトウェアもすべて含まれた状態で提供されます。WOA はソフトウェア単体としては提供されないため、どの DVD をインストールすればいいのか迷ったり、特定の PC 上で動作するかどうか悩んだりする必要はありません。

WOA PC のサービスは Windows Update または Microsoft Update 経由でのみ行われ、コンシューマー向けアプリは Windows Store でのみ提供されます。Store のエクスペリエンスの外でダウンロードを行ったり DVD からインストールしたりすることはないため、プログラムが動作するかどうかを心配する必要はまったくありません。使い方や管理方法という面では、WOA PC は一般的な電化製品のように扱うことができます。たとえば、以前に触れたように、新しいリフレッシュおよびリセットの機能が提供されますが、WOA ではこれらの機能はクリーン インストールやイメージングのように動作します。

次のステップ

お話しすることはまだまだあります。この記事から始まる対話の内容に応じて、WOA のエンジニアリングや、OS に織り込まれるさまざまな機能について、今後もこのブログで詳しくご紹介していきたいと思います。早くソフトウェアに触れてみたい方も多いかと思います。しかし、Windows 7 用に設計された PC を使用できる x86/64 の Windows 8 とは異なり、WOA には当然ながら使用できる既存ハードウェアが存在していません。ただし、開発用ハードウェアと WOA ソフトウェアを配布する範囲を広げる時期は近づいてきています。

このリリースに弾みをつけるため、WOA 専用に設計された少数のテスト PC が、次の Windows 8 のマイルストーンの前後から提供され始める予定です。これらのデバイスは開発者とハードウェア パートナー向けのもので、どのような意味合いにおいても、最終的にコンシューマー向けに提供されるフォーム ファクターとはまったく無関係です。診断用のツールやポートがあり、開いてデバッグすることを前提とした設計になっています。商業的に提供されるデバイスに使用されるような、最終的なコンポーネントやファームウェア (あるいは電源/温度管理機能) は備わっていません。また、廉価なプラスチック製です。CES での展示やこのブログで行われたデモで、似たようなデバイスを目にされているかもしれません。これまでに行ったデモでは、いずれも何らかの形でこれらのテスト PC を使用しています。これらの PC は WOA とエクスペリエンスを反映したものではありますが、現在の x86/64 の Windows 8 と同様、最終的なエクスペリエンスを表すものではありません。搭載される Windows は、次の開発マイルストーンで x86/64 のテスターに提供される Windows と同じブランチのものとなります。

これらの PC は基本的に少量生産のカスタム PC であるため、製作にも配布にも高いコストがかかっています。これらは開発者向けの広報活動を通して提供されます。今回このようにお知らせしているのは、期待を煽ったり推薦を募ったりするためではく、この情報やテスト PC の画像はいずれ間違いなく Web に流出すると思われるためです。デバイスの提供先は既に確定しています。情報だけをお知らせするのは少々酷なように思われるかもしれませんが、一方でこのような透明性の高さは、Windows 開発に対する私たちの取り組み方を象徴するものともお考えいただけると思います。Windows 8 プロジェクトの規模はたいへんなものです。それに加えてこのように率直に情報を提示し、開発上の決断についても積極的に対話を行っているこのプロジェクトは、まさに前例のないものと言えます。

今月末までには、x86/64 の Windows 8 のベータ版である Windows Consumer Preview がダウンロード提供を開始されます。最近になって名称をベータからこのように変更しましたが、これはベータという言葉が "無料で試用できるテスト用リリース" とはかなり異なる意味合いを持つようになってきたので、混乱を招きたくなかったためです。引き続きオープンにお知らせすると、テスト プログラムへの事前登録や許可の制度はありません。単純にダウンロードして Windows 7 ロゴ PC にインストールすればご使用いただけます (VM もサポートされますが、コンシューマー向けのエクスペリエンスを使用する方法としては最適とは言えません)。非常に多くの改良が行われており、5 か月前の Windows Developer Preview と比べれば大幅に違ったものとなっています。なお、Windows 8 と WOA はまだ開発の途上にあり、プレリリースからリリースに進むまでにはまだまだやるべきことが残っているという点は改めて申し添えておきたいと思います。私たちは常に品質を優先事項として開発を進めています。コードはまだ完成形ではありません。

マイルストーンが近づくにつれ、チームでも興奮が高まっています。Windows の新しいリリースを開発するという仕事の責任の重さには、改めて身が引き締まります。同時に、WOA というまったく新しいプラットフォームをすることに、気圧される思いと背中を押される思いの両方を感じています。Windows Consumer Preview の提供開始まであとわずかです。皆さんをお迎えするのを心から楽しみにしています。

Windows チームを代表して

Steven Sinofsky