連載
» 2012年03月30日 08時00分 公開

鈴木淳也の「お先に失礼! Windows 8(まだ仮称)」:Metroは裏でこんなことをやっている (2/2)

[鈴木淳也(Junya Suzuki),ITmedia]
前のページへ 1|2       

MicrosoftがWindows 8とWOAで目指す世界

 以上の分析結果を踏まえると、おぼろげながらWindows 8の目指す世界が見えてくる。同時に、長らくベールに包まれていた「Windows on ARM」(WOA)のアーキテクチャの想像も容易になる。WOAについては、Windows開発チームトップのスティーブン・シノフスキー氏が、Building Windows Blogに掲載したエントリに詳しいが(英文かつ長文なので注意)、ここではその抜粋を含めてWindows 8アーキテクチャやWOAの目指す方向性を解説しよう。

 これまでも連載で解説してきたように、Windows 8では、従来のWin32/.NETといったフレームワークに加え、新たにMetroスタイルアプリを動作する「WinRT」というランタイム環境を備えている。各種ツールからゲームまで、すべてのアプリはWinRT上で構築してほしいとMicrosoftは開発者に要望している。

 WinRTを利用するメリットはいくつかある。まず、開発言語を自由に選択できる点だ。Win32向けのC/C++だけでなく、.NETのC#やVB、さらにはHTML+JavaScriptまで、開発者が培ってきた開発言語やテクニックをすべて吸収できる仕組みになっている。またWinRTをターゲットに作られたアプリは、全画面動作が基本のいわゆる「Metroスタイル」となり、サスペンドのメカニズム解析の部分でも紹介した、アプリの“ライフサイクル”に則る形となる。

Windows 8のアーキテクチャを大別すると、Metroスタイルアプリの動作するWinRTランタイムと、従来のデスクトップアプリケーションが動作する「IE」(HTML/JavaScript)、「.NET」、「Win32」のAPI群に分かれる(写真=左)。「サスペンド」状態を挟んだアプリの“ライフサイクル”で、バックグラウンドにまわったアプリはシステムから「サスペンド」メッセージを受け取り、完全にサスペンド(または終了)するまで5秒間の猶予を与えられる。「サスペンド」されたアプリは一定条件(「Notification」の受信など)で「レジューム」することがある。また「サスペンド」されたアプリは堆積していき、メモリ不足になった段階で強制終了する(写真=中央、右)

 ここで明らかなのは、MicrosoftがWinRTで目指そうとしているのが、「すべてのアプリをシステムの制御下に置く」ということだ。Metroスタイルアプリであれば、そこで定められた“ライフサイクル”に則ってアプリの寿命から活動を制御できるが、従来のWindowsアプリケーションではその限りでない。そのため、もし“お行儀の悪い”アプリケーションがあった場合、「システムリソースの浪費をセーブしつつ動作する」というWindows 8の基本メカニズムを破壊することになる。

 これは、バッテリー駆動が前提となるタブレット型のデバイスで特に影響が大きく、Microsoftは「ユーザー体験を阻害するもの」と考えるだろう。例えば、ARM搭載タブレットデバイスの場合、そのシステムの省電力性能を生かすには「なるべくリソースの浪費を防ぐ」必要がある。ここが従来のWindows PCと大きく異なる点だ。そのため、細かく制御できないWindowsアプリケーションはなるべく排除する必要がある。

 このようなことを考えると、MicrosoftがWOAで目指すのは、

  • WinRT上で動作するMetroスタイルアプリのみ実行を許可する
  • アプリのインストール手段はWindows Store経由のみ(エンタープライズ用途を除く)


 ということになる。実際、シノフスキー氏のポストでも同様の言及があり、唯一許可されたWindowsアプリケーションは「Microsoft Office」のみで、これは本体OSに付属すると記されている。WOAは実際のところ、「Windowsという名前のついた別のOS」と考えたほうが正しいだろう。ハードウェアを除く従来までのソフトウェア資産は継承されず、あくまで「Windows 8」の上でx86/x64系CPUとARM SoCの上で同じアプリが動作するといったイメージだ。

 Windows 8で用意する仕組みとしてもう1つ忘れてはいけないのが、「Connected Standby」という機能だ。これは、Windows 8がネットワークに常時接続した状態を維持し、常に最新情報をネットワーク経由でアップデートし続ける。従来までの「スリープ」では、PCが完全に休眠状態に入ってしまい、「Wake on LAN」のようなトリガーが発生するまで動作をストップしていた。ところが、Connected Standbyは消費電力を最低限に抑えつつ、バックグラウンドでネットワークとの常時接続を実現し、必要に応じてバックグラウンドでのアプリ動作を許可する仕組みが提供される。先ほどの「画面ロック」にあった状態と同じになる。

 アプリを「サスペンド」状態で待機させつつ、バックグラウンドでネットワーク通信を行って適時処理を振り分ける、と書くと単純だが、実際は、アプリの応答を最低限に抑えないと「リソース浪費の抑制」という目標が実現できないため、「Notifications」といったサーバと連動した明示的な通信を確保しつつ(電子メール受信通知などが分かりやすい例だろう)、ほかの多くの通信はフィルタを通してノイズを除外する仕組みを導入している。この「Connected Standby」と「サスペンド」の絶妙なバランスによる制御がWindows 8で重要な機能といえる。

「Connected Standby」は、アプリを「サスペンド」状態で待機させつつ、バックグラウンドでネットワークを経由した必要最低限の情報更新を行う。これらを組み合わせることで「バッテリー使用を抑制しながら常時接続」を可能にする


 以上のような経緯は、モバイルOSを目指すWindows 8が、iOSとAndroidというメジャーなモバイルOSが苦労してきた道のりをそのままたどっているのがうかがえる。Windows Phoneの実装へと近付いているともいえ、近い将来に両者が交わる可能性も考えられる。具体的にはWindows Phoneの基本機能をWindowsが導入し、Windows PhoneがWinRTの実行環境を備えるといった流れだ。

 搭載できるメモリ容量など、デバイスのフットプリントとそこに実装できるシステムのリソースが異なるため、すぐにPC向けOSとモバイルOSが融合するとは思わないが、いずれは両者がオーバーラップする時代がやってくると考えられる。

前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

この記事が気に入ったら
ITmedia PC USER に「いいね!」しよう